1.一種基于RabbitMQ和Socket.io的平臺級聯(lián)方法,其特征在于,包括以下步驟:
S1、使用行政區(qū)域劃代碼+平臺代碼作為隊列名稱和路由鍵,發(fā)起任務協(xié)助或反饋協(xié)助信息時,通過指定路由鍵將消息發(fā)送給指定隊列;各級平臺讀取任務協(xié)助/反饋消息時,通過指定路由鍵從自己的隊列里讀取消息;
S2、基于Node.js環(huán)境搭建socket.io消息實時推送后臺服務,其他服務端應用程序或客戶端將需要推送的消息以JSON格式提交給socket.io后臺服務,再由socket.io后臺服務將消息推送或廣播給客戶端。
2.根據(jù)權利要求1所述的基于RabbitMQ和Socket.io的平臺級聯(lián)方法,其特征在于,所述步驟S1具體包括:
S11、安裝erlang運行環(huán)境和RabbitMQ;
S12、初始化RabbitMQ,創(chuàng)建相關隊列并綁定路由鍵;
S13、定制開發(fā)消息發(fā)送和消息消費方法,并集成到服務端應用程序。
3.根據(jù)權利要求2所述的基于RabbitMQ和Socket.io的平臺級聯(lián)方法,其特征在于,所述步驟S12具體包括:通過命令窗口調(diào)用rabbitmqctl命令及相關參數(shù)依次啟動應用、創(chuàng)建虛擬機、添加用戶和綁定權限、啟動web管理程序,完成RabbitMQ初始化基本配置;然后進入web管理程序,根據(jù)級聯(lián)平臺的實際情況,結合以上隊列及路由鍵命名規(guī)則,創(chuàng)建相關隊列并綁定路由鍵。
4.根據(jù)權利要求2所述的基于RabbitMQ和Socket.io的平臺級聯(lián)方法,其特征在于,所述S12還包括,添加用戶并綁定權限。
5.根據(jù)權利要求1所述的基于RabbitMQ和Socket.io的平臺級聯(lián)方法,其特征在于,所述步驟S2具體包括:
S21、安裝Node.js和Socket.io模塊;
S22、編寫Socket.io服務端腳本socketio_server.js,并將該腳本文件放到Node.js安裝根目錄下,然后在命令行窗口運行node socketio_server.js啟動消息實時推送后臺服務;
S23、服務端應用程序和客戶端通過socket.io提供的跨平臺的api接口,連接socket.io服務端,并推送或接收消息。
6.根據(jù)權利要求5所述的基于RabbitMQ和Socket.io的平臺級聯(lián)方法,其特征在于,所述步驟S21具體包括:獲取Node.js安裝包并進行安裝,在聯(lián)網(wǎng)環(huán)境下通過命令行窗口執(zhí)行npm install socket.io命令安裝Socket.io模塊,執(zhí)行npm install express安裝web容器;或直接拷貝socket.io和express離線包到Node.js安裝目錄下的node_modules子目錄進行離線安裝。
7.根據(jù)權利要求5所述的基于RabbitMQ和Socket.io的平臺級聯(lián)方法,其特征在于,所述步驟S22具體包括:
S221、加載express、http、socket.io三個模塊,通過http和express兩個模塊實現(xiàn)web容器功能,通過io對象的of方法綁定路由notify,通過io的on方法監(jiān)聽connection事件;
S222、在io的connection事件回調(diào)函數(shù)里,給回調(diào)參數(shù)socket對象綁定join、new message、broadcast、disconnect四個事件;通過join事件監(jiān)聽客戶端的加入,參數(shù)為用戶id、用戶名;通過new message監(jiān)聽客戶端通過emit方法提交的需要發(fā)送的消息,并將消息發(fā)送給指定的用戶,參數(shù)為用戶id列表和消息內(nèi)容;通過broadcast廣播消息給所有在線用戶,參數(shù)為消息內(nèi)容;通過disconnect監(jiān)聽下線的用戶。
8.根據(jù)權利要求5所述的基于RabbitMQ和Socket.io的平臺級聯(lián)方法,其特征在于,所述步驟S23中,推送或接收消息具體包括:通過join方法加入會話,并向服務器提供用戶信息;通過emit方法提交需要發(fā)送的消息,參數(shù)為事件名稱、用戶列表和消息內(nèi)容;通過綁定new message、broadcast事件接收消息。
9.一種根據(jù)權利要求1至8任一所述的方法進行平臺級聯(lián)的系統(tǒng),其特征在于,包括RabbitMQ消息中心、客戶端、服務端應用程序;所述RabbitMQ消息中心用于在Node.js環(huán)境下通過Socket.io實現(xiàn)跨平臺的消息實時推送,所述客戶端和服務端應用程序通過socket.io提供的跨平臺的api接口連接RabbitMQ消息中心,并通過join方法加入會話,并向服務器提供用戶信息;通過emit方法提交需要發(fā)送的消息,參數(shù)為事件名稱(new message、broadcast)、用戶列表和消息內(nèi)容;通過綁定new message、broadcast事件接收消息。