本發(fā)明涉及物聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種物聯(lián)網(wǎng)通信方法及系統(tǒng)、一種網(wǎng)關(guān)模塊。
背景技術(shù):
物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,也是“信息化”時(shí)代的重要發(fā)展階段。其英文名稱是:“internetofthings(iot)”。顧名思義,物聯(lián)網(wǎng)就是物物相連的互聯(lián)網(wǎng)。這有兩層意思:其一,物聯(lián)網(wǎng)的核心和基礎(chǔ)仍然是互聯(lián)網(wǎng),是在互聯(lián)網(wǎng)基礎(chǔ)上的延伸和擴(kuò)展的網(wǎng)絡(luò);其二,其用戶端延伸和擴(kuò)展到了任何物品與物品之間,進(jìn)行信息交換和通信,也就是物物相息。物聯(lián)網(wǎng)通過智能感知、識(shí)別技術(shù)與普適計(jì)算等通信感知技術(shù),廣泛應(yīng)用于網(wǎng)絡(luò)的融合中,也因此被稱為繼計(jì)算機(jī)、互聯(lián)網(wǎng)之后世界信息產(chǎn)業(yè)發(fā)展的第三次浪潮。
如申請(qǐng)?zhí)枮閏n201410452936.8的專利文獻(xiàn)公開的“一種物聯(lián)網(wǎng)通信方法以及物聯(lián)網(wǎng)系統(tǒng)”,該發(fā)明公開了一種物聯(lián)網(wǎng)通信方法和物聯(lián)網(wǎng)系統(tǒng),其中方法包括:請(qǐng)求步驟,用于通過測(cè)量設(shè)備向服務(wù)器發(fā)送生成動(dòng)態(tài)唯一編碼的請(qǐng)求;生成步驟,服務(wù)器響應(yīng)所述請(qǐng)求生成動(dòng)態(tài)唯一編碼;上傳步驟,用于通過控制終端將所述動(dòng)態(tài)唯一編碼上傳給所述服務(wù)器;以及綁定步驟,用于由所述服務(wù)器將發(fā)送請(qǐng)求的測(cè)量設(shè)備與上傳動(dòng)態(tài)唯一編碼的控制終端進(jìn)行綁定,以使兩者建立一對(duì)一的通信連接。
又如申請(qǐng)?zhí)枮閏n201410606747.1的專利文獻(xiàn)公開的“物聯(lián)網(wǎng)通信方法和裝置以及物聯(lián)網(wǎng)通信系統(tǒng)”,該發(fā)明提供了一種物聯(lián)網(wǎng)通信方法和裝置,該物聯(lián)網(wǎng)通信方法包括:接收來自第一用戶終端的攜帶有第一即時(shí)通信用戶標(biāo)識(shí)的第一登錄請(qǐng)求,并據(jù)以完成對(duì)所述第一用戶終端的登錄授權(quán)操作;接收來自網(wǎng)絡(luò)接入設(shè)備的攜帶有設(shè)備標(biāo)識(shí)的第二登錄請(qǐng)求,并據(jù)以完成對(duì)所述網(wǎng)絡(luò)接入設(shè)備的登錄授權(quán)操作;根據(jù)具有第一關(guān)聯(lián)的所述第一即時(shí)通信用戶標(biāo)識(shí)和所述設(shè)備標(biāo)識(shí)建立即時(shí)通信傳輸通道;通過所述即時(shí)通信傳輸通道對(duì)所述第一用戶終端和所述網(wǎng)絡(luò)接入設(shè)備之間傳遞的網(wǎng)絡(luò)信令進(jìn)行中轉(zhuǎn)。
現(xiàn)有技術(shù)普遍存在有以下缺點(diǎn):
1)物聯(lián)網(wǎng)設(shè)備間通信效率不高;
2)終端設(shè)備負(fù)荷較重;
3)實(shí)時(shí)性容易受到影響。
技術(shù)實(shí)現(xiàn)要素:
物聯(lián)網(wǎng)的終端設(shè)備資源有限,需要低功耗運(yùn)用場(chǎng)景,而且消息的實(shí)時(shí)性和準(zhǔn)確性尤為關(guān)鍵。本發(fā)明為了解決以上的問題,提出了一種基于mqtt協(xié)議和websocket協(xié)議的物聯(lián)網(wǎng)通信方法及系統(tǒng),本發(fā)明還提出一種網(wǎng)關(guān)模塊。
本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:
一種物聯(lián)網(wǎng)通信方法,包括步驟:
s1.接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的注冊(cè)請(qǐng)求消息至通信適配模塊,所述通信適配模塊將所述注冊(cè)請(qǐng)求消息存儲(chǔ)至數(shù)據(jù)庫內(nèi),并返回注冊(cè)響應(yīng);
s2.接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的訂閱請(qǐng)求消息至通信適配模塊,所述通信適配模塊將所述訂閱請(qǐng)求消息存儲(chǔ)至數(shù)據(jù)庫內(nèi),并返回訂閱響應(yīng);
s3.接收終端設(shè)備發(fā)送的發(fā)布消息,獲取訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備信息,將所述發(fā)布消息轉(zhuǎn)發(fā)至訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備。
進(jìn)一步地,步驟s1具體為:
s11.終端設(shè)備發(fā)送注冊(cè)請(qǐng)求消息至網(wǎng)關(guān)模塊;所述注冊(cè)請(qǐng)求消息包括:終端設(shè)備對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí)、通信協(xié)議、設(shè)備類型、設(shè)備名稱、設(shè)備角色及時(shí)間戳;
s12.網(wǎng)關(guān)模塊將所述注冊(cè)請(qǐng)求消息轉(zhuǎn)發(fā)至通信適配模塊;
s13.通信適配模塊將所述注冊(cè)請(qǐng)求消息存儲(chǔ)至數(shù)據(jù)庫內(nèi),并創(chuàng)建注冊(cè)信息表;
s14.通信適配模塊通過網(wǎng)關(guān)模塊向終端設(shè)備返回是否注冊(cè)成功的消息。
進(jìn)一步地,步驟s2具體為:
s21.終端設(shè)備發(fā)送訂閱請(qǐng)求消息至網(wǎng)關(guān)模塊;所述訂閱請(qǐng)求消息包括:終端設(shè)備對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí)、訂閱對(duì)象設(shè)備對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí)、接收數(shù)據(jù)類型、接收數(shù)據(jù)格式及時(shí)間戳;
s22.網(wǎng)關(guān)模塊的協(xié)議轉(zhuǎn)換模塊將所述訂閱請(qǐng)求消息從mqtt協(xié)議類型轉(zhuǎn)換至websocket協(xié)議類型;
s23.網(wǎng)關(guān)模塊將所述訂閱請(qǐng)求消息發(fā)送至通信適配模塊,通信適配模塊將接收的訂閱請(qǐng)求消息存儲(chǔ)至數(shù)據(jù)庫內(nèi),并創(chuàng)建一用于區(qū)別不同設(shè)備之間的發(fā)布訂閱關(guān)系的唯一標(biāo)識(shí);
s24.通信適配模塊通過網(wǎng)關(guān)模塊向終端設(shè)備返回是否訂閱成功的消息。
進(jìn)一步地,步驟s3具體為:
s31.終端設(shè)備發(fā)送發(fā)布消息至網(wǎng)關(guān)模塊;所述發(fā)布消息包括:終端設(shè)備對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí)、發(fā)布消息的數(shù)據(jù)類型、發(fā)布消息的數(shù)據(jù)格式、設(shè)備類型及時(shí)間戳;
s32.網(wǎng)關(guān)模塊的協(xié)議轉(zhuǎn)換模塊將所述發(fā)布消息從mqtt協(xié)議類型轉(zhuǎn)換至websocket協(xié)議類型;
s33.網(wǎng)關(guān)模塊將所述發(fā)布消息發(fā)送至通信適配模塊;
s34.通信適配模塊接收并解析所述發(fā)布消息,并從數(shù)據(jù)庫內(nèi)獲取訂閱了所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備信息;
通信適配模塊發(fā)送所述發(fā)布消息及所述其他終端設(shè)備信息至網(wǎng)關(guān)模塊;
s35.網(wǎng)關(guān)模塊的協(xié)議轉(zhuǎn)換模塊將所述發(fā)布消息從websocket協(xié)議類型轉(zhuǎn)換至mqtt協(xié)議類型;
s36.網(wǎng)關(guān)模塊的協(xié)議轉(zhuǎn)換模塊將所述發(fā)布消息轉(zhuǎn)發(fā)至訂閱了所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備。
一種網(wǎng)關(guān)模塊,包括:
注冊(cè)請(qǐng)求處理單元,用于接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的注冊(cè)請(qǐng)求消息至通信適配模塊,還用于接收及轉(zhuǎn)發(fā)注冊(cè)響應(yīng);
訂閱請(qǐng)求處理單元,用于接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的訂閱請(qǐng)求消息至通信適配模塊,還用于接收及轉(zhuǎn)發(fā)訂閱響應(yīng);
發(fā)布消息處理單元,用于接收終端設(shè)備發(fā)送的發(fā)布消息,獲取訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備信息,將所述發(fā)布消息轉(zhuǎn)發(fā)至訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備。
一種物聯(lián)網(wǎng)通信系統(tǒng),包括:
終端設(shè)備,用于向網(wǎng)絡(luò)模塊發(fā)送注冊(cè)請(qǐng)求消息、訂閱請(qǐng)求消息及發(fā)布消息;
事件流處理模塊,用于與網(wǎng)關(guān)模塊進(jìn)行通信以及管理終端設(shè)備之間的通信;
網(wǎng)關(guān)模塊,用于與終端設(shè)備及事件流處理模塊進(jìn)行通信。
進(jìn)一步地,所述終端設(shè)備包括:
網(wǎng)絡(luò)連接單元,用于建立與網(wǎng)關(guān)模塊的網(wǎng)絡(luò)連接。
進(jìn)一步地,所述事件流處理模塊包括:
通信適配單元,用于與網(wǎng)關(guān)模塊進(jìn)行通信管理,還用于管理終端設(shè)備間的通信;
數(shù)據(jù)庫,用于存儲(chǔ)不同終端設(shè)備之間的通信模型;
第一websocket輸入/輸出端口,用于與網(wǎng)關(guān)模塊建立基于websocket協(xié)議的通信連接。
進(jìn)一步地,所述網(wǎng)關(guān)模塊包括:
注冊(cè)請(qǐng)求處理單元,用于接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的注冊(cè)請(qǐng)求消息至通信適配模塊,還用于接收及轉(zhuǎn)發(fā)注冊(cè)響應(yīng);
訂閱請(qǐng)求處理單元,用于接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的訂閱請(qǐng)求消息至通信適配模塊,還用于接收及轉(zhuǎn)發(fā)訂閱響應(yīng);
發(fā)布消息處理單元,用于接收終端設(shè)備發(fā)送的發(fā)布消息,獲取訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備信息,將所述發(fā)布消息轉(zhuǎn)發(fā)至訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備。
進(jìn)一步地,所述網(wǎng)關(guān)模塊還包括:
mqtt單元,用于維持終端設(shè)備與網(wǎng)關(guān)模塊之間的通信連接;
協(xié)議轉(zhuǎn)換單元,用于將消息從mqtt協(xié)議類型轉(zhuǎn)換至websocket協(xié)議類型,或者,用于將消息從websocket協(xié)議類型轉(zhuǎn)換至mqtt協(xié)議類型;
第二websocket輸入/輸出端口,用于與事件流處理模塊建立基于websocket協(xié)議的通信連接。
本發(fā)明提出一種可以結(jié)合mqtt協(xié)議和websocket協(xié)議的物聯(lián)網(wǎng)通信架構(gòu),優(yōu)點(diǎn)在于:
1)qtt協(xié)議的消息格式極其簡單,最短只有兩個(gè)字節(jié),可以實(shí)現(xiàn)高效消息通信,減小設(shè)備端和服務(wù)端負(fù)荷。
2)websocket協(xié)議可以維護(hù)客戶端和服務(wù)端之間的雙向通信,進(jìn)而可以確保消息的實(shí)時(shí)性。
附圖說明
圖1為本發(fā)明實(shí)施例一中一種物聯(lián)網(wǎng)通信方法流程圖;
圖2為本發(fā)明實(shí)施例一中一種網(wǎng)關(guān)模塊結(jié)構(gòu)圖;
圖3為本發(fā)明實(shí)施例一中一種物聯(lián)網(wǎng)通信系統(tǒng)結(jié)構(gòu)圖;
圖4為本發(fā)明實(shí)施例二中設(shè)備注冊(cè)流程圖;
圖5為本發(fā)明實(shí)施例三中設(shè)備訂閱流程圖;
圖6為本發(fā)明實(shí)施例四中設(shè)備消息發(fā)布流程圖。
具體實(shí)施方式
以下是本發(fā)明的具體實(shí)施例并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步的描述,但本發(fā)明并不限于這些實(shí)施例。
物聯(lián)網(wǎng)的終端設(shè)備資源有限,需要低功耗運(yùn)用場(chǎng)景,而且消息的實(shí)時(shí)性和準(zhǔn)確性尤為關(guān)鍵。本發(fā)明為了解決以上的問題,提出了一種基于mqtt協(xié)議和websocket協(xié)議的物聯(lián)網(wǎng)通信架構(gòu):
mqtt協(xié)議的消息格式極其簡單,最短只有兩個(gè)字節(jié),可以實(shí)現(xiàn)高效消息通信,減小設(shè)備端和服務(wù)端負(fù)荷;
websocket協(xié)議可以維護(hù)客戶端和服務(wù)端之間的雙向通信,進(jìn)而可以確保消息的實(shí)時(shí)性。
通常情況下,設(shè)備的通信協(xié)議都是由設(shè)備制造商決定的,在這種情況下,不同的設(shè)備間通信需要提前知道該設(shè)備的通信協(xié)議,本發(fā)明還可以支持不同設(shè)備間通信。
以下為本發(fā)明具體實(shí)施例。
實(shí)施例一
如圖1所示為本實(shí)施例中一種物聯(lián)網(wǎng)通信方法流程圖,該方法包括步驟:
s1.接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的注冊(cè)請(qǐng)求消息至通信適配模塊,所述通信適配模塊將所述注冊(cè)請(qǐng)求消息存儲(chǔ)至數(shù)據(jù)庫內(nèi),并返回注冊(cè)響應(yīng);
在一個(gè)設(shè)備可以與其他設(shè)備通信之前,該設(shè)備必須先注冊(cè)。
本步驟中,設(shè)備首先發(fā)出注冊(cè)請(qǐng)求到網(wǎng)關(guān)模塊,該注冊(cè)請(qǐng)求消息包括一個(gè)設(shè)備唯一標(biāo)識(shí),一種通信協(xié)議,設(shè)備類型,設(shè)備名字,設(shè)備角色和時(shí)間戳等等。之后網(wǎng)關(guān)模塊會(huì)把該請(qǐng)求轉(zhuǎn)發(fā)給通信適配模塊,通信適配模塊會(huì)將該信息存儲(chǔ)到數(shù)據(jù)庫并維護(hù)一個(gè)注冊(cè)信息表,該表包括所有可用的設(shè)備和設(shè)備相關(guān)信息。通信適配模塊最后會(huì)通過網(wǎng)關(guān)模塊返回給設(shè)備是否注冊(cè)成功的消息。
s2.接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的訂閱請(qǐng)求消息至通信適配模塊,所述通信適配模塊將所述訂閱請(qǐng)求消息存儲(chǔ)至數(shù)據(jù)庫內(nèi),并返回訂閱響應(yīng);
本步驟中,設(shè)備發(fā)出訂閱請(qǐng)求消息到網(wǎng)關(guān)模塊,該訂閱請(qǐng)求消息包括一個(gè)設(shè)備唯一標(biāo)識(shí),發(fā)布設(shè)備的標(biāo)識(shí),接收的數(shù)據(jù)類型,數(shù)據(jù)格式,時(shí)間戳等等。網(wǎng)關(guān)模塊中的協(xié)議轉(zhuǎn)換模塊會(huì)把收到的訂閱請(qǐng)求從mqtt協(xié)議轉(zhuǎn)換為websocket協(xié)議,然后通過網(wǎng)關(guān)模塊的websocket輸出端口轉(zhuǎn)發(fā)該消息到通信適配模塊的websocket輸出端口,之間的通信可以通過ssl/https進(jìn)行加密,通信適配模塊在收到消息之后會(huì)在數(shù)據(jù)庫中存儲(chǔ)該信息,并創(chuàng)建一個(gè)唯一標(biāo)識(shí)來區(qū)別不同設(shè)備間的發(fā)布訂閱關(guān)系。通信適配模塊最后會(huì)通過網(wǎng)關(guān)模塊返回給設(shè)備是否訂閱成功的消息。
mqtt(messagequeuingtelemetrytransport,消息隊(duì)列遙測(cè)傳輸)是ibm開發(fā)的一個(gè)即時(shí)通訊協(xié)議,有可能成為物聯(lián)網(wǎng)的重要組成部分。該協(xié)議支持所有平臺(tái),幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來,被用來當(dāng)做傳感器和致動(dòng)器(比如通過twitter讓房屋聯(lián)網(wǎng))的通信協(xié)議。
websocket協(xié)議是html5一種新的協(xié)議。它實(shí)現(xiàn)了基于tcp的瀏覽器與服務(wù)器全雙工通信,該協(xié)議由ietf制定為標(biāo)準(zhǔn)協(xié)議rfc6455,而且websocketapi也已經(jīng)被w3c組織標(biāo)準(zhǔn)化。這種技術(shù)要達(dá)到的目的是讓用戶不需要刷新瀏覽器就可以獲得實(shí)時(shí)更新。它有著廣泛的應(yīng)用場(chǎng)景,比如在線聊天室、在線客服系統(tǒng)、評(píng)論系統(tǒng)、webim等。
s3.接收終端設(shè)備發(fā)送的發(fā)布消息,獲取訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備信息,將所述發(fā)布消息轉(zhuǎn)發(fā)至訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備。
本步驟中,設(shè)備發(fā)出發(fā)布消息到網(wǎng)關(guān)模塊,該發(fā)布消息包括一個(gè)設(shè)備唯一標(biāo)識(shí),消息的數(shù)據(jù)類型,消息的數(shù)據(jù)格式,設(shè)備類型,時(shí)間戳等等。網(wǎng)關(guān)模塊中的協(xié)議轉(zhuǎn)換模塊會(huì)把收到的發(fā)布消息請(qǐng)求從mqtt協(xié)議轉(zhuǎn)換為websocket協(xié)議,然后通過網(wǎng)關(guān)的websocket輸出端口轉(zhuǎn)發(fā)該消息到通信適配模塊的websocket輸出端口,之間的通信可以通過ssl/https進(jìn)行加密,通信適配模塊會(huì)解析該發(fā)布消息,并從數(shù)據(jù)庫中讀取對(duì)應(yīng)該設(shè)備的訂閱設(shè)備,之后通過該模塊的websocket輸入端口轉(zhuǎn)發(fā)該消息到網(wǎng)關(guān)模塊的輸入端口,網(wǎng)關(guān)模塊會(huì)轉(zhuǎn)發(fā)給mqtt的協(xié)議轉(zhuǎn)換模塊,再由協(xié)議轉(zhuǎn)換模塊將websocket消息轉(zhuǎn)為mqtt消息,最后由其轉(zhuǎn)發(fā)給訂閱了該服務(wù)的所有設(shè)備。
如圖2所示為本實(shí)施例中一種網(wǎng)關(guān)模塊結(jié)構(gòu)圖,該模塊包括:
注冊(cè)請(qǐng)求處理單元310,用于接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的注冊(cè)請(qǐng)求消息至通信適配模塊,還用于接收及轉(zhuǎn)發(fā)注冊(cè)響應(yīng);
訂閱請(qǐng)求處理單元320,用于接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的訂閱請(qǐng)求消息至通信適配模塊,還用于接收及轉(zhuǎn)發(fā)訂閱響應(yīng);
發(fā)布消息處理單元330,用于接收終端設(shè)備發(fā)送的發(fā)布消息,獲取訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備信息,將所述發(fā)布消息轉(zhuǎn)發(fā)至訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備。
如圖3所示為本實(shí)施例中一種物聯(lián)網(wǎng)通信系統(tǒng)結(jié)構(gòu)圖,該系統(tǒng)包括:
終端設(shè)備100,用于向網(wǎng)絡(luò)模塊發(fā)送注冊(cè)請(qǐng)求消息、訂閱請(qǐng)求消息及發(fā)布消息;
事件流處理模塊200,用于與網(wǎng)關(guān)模塊進(jìn)行通信以及管理終端設(shè)備之間的通信;
網(wǎng)關(guān)模塊300,用于與終端設(shè)備及事件流處理模塊進(jìn)行通信。
所述終端設(shè)備100包括:
網(wǎng)絡(luò)連接單元110,用于建立與網(wǎng)關(guān)模塊的網(wǎng)絡(luò)連接。
所述事件流處理模塊200包括:
通信適配單元210,用于與網(wǎng)關(guān)模塊進(jìn)行通信管理,還用于管理終端設(shè)備間的通信;
數(shù)據(jù)庫220,用于存儲(chǔ)不同終端設(shè)備之間的通信模型;
第一websocket輸入/輸出端口230,用于與網(wǎng)關(guān)模塊建立基于websocket協(xié)議的通信連接。
所述網(wǎng)關(guān)模塊300包括:
注冊(cè)請(qǐng)求處理單元310,用于接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的注冊(cè)請(qǐng)求消息至通信適配模塊,還用于接收及轉(zhuǎn)發(fā)注冊(cè)響應(yīng);
訂閱請(qǐng)求處理單元320,用于接收并轉(zhuǎn)發(fā)終端設(shè)備發(fā)送的訂閱請(qǐng)求消息至通信適配模塊,還用于接收及轉(zhuǎn)發(fā)訂閱響應(yīng);
發(fā)布消息處理單元330,用于接收終端設(shè)備發(fā)送的發(fā)布消息,獲取訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備信息,將所述發(fā)布消息轉(zhuǎn)發(fā)至訂閱所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備。
mqtt單元340,用于維持終端設(shè)備與網(wǎng)關(guān)模塊之間的通信連接;
協(xié)議轉(zhuǎn)換單元350,用于將消息從mqtt協(xié)議類型轉(zhuǎn)換至websocket協(xié)議類型,或者,用于將消息從websocket協(xié)議類型轉(zhuǎn)換至mqtt協(xié)議類型;
第二websocket輸入/輸出端口360,用于與事件流處理模塊建立基于websocket協(xié)議的通信連接。
本實(shí)施例中,物聯(lián)網(wǎng)通信系統(tǒng)主要包括三個(gè)核心部分,終端設(shè)備100,網(wǎng)關(guān)模塊300,事件流處理模塊200。
終端設(shè)備100可以是微處理器,手機(jī),平板,智能穿戴或智能家電等,并且終端設(shè)備100需要和網(wǎng)關(guān)模塊300之間建立了網(wǎng)絡(luò)連接。每個(gè)設(shè)備可以配置一個(gè)網(wǎng)絡(luò)地址例如統(tǒng)一資源標(biāo)示符(uri)用于維持與網(wǎng)關(guān)模塊300之間的會(huì)話。
網(wǎng)關(guān)模塊300包含一個(gè)mqtt單元340用于維護(hù)終端設(shè)備100和網(wǎng)關(guān)模塊300之間的會(huì)話。
網(wǎng)關(guān)模塊300還包含一個(gè)協(xié)議轉(zhuǎn)換單元350,該模塊可以把mqtt消息轉(zhuǎn)換為websocket消息。網(wǎng)關(guān)模塊300還包括第二websocket輸入/輸出端口360,用于和事件流處理模塊200建立基于websocket協(xié)議的通信連接。
事件流處理模塊200基于事件驅(qū)動(dòng)架構(gòu)并具備與其他業(yè)務(wù)互聯(lián)的擴(kuò)展功能,該模塊用到的技術(shù)包括但不限于事件可視化,事件數(shù)據(jù)庫,事件驅(qū)動(dòng)中間件,事件處理語言,復(fù)雜事件處理等等。
事件流處理模塊200有一個(gè)通信適配單元210,功能為與網(wǎng)關(guān)模塊進(jìn)行基于websocket協(xié)議的通信并管理設(shè)備間通信;
事件流處理模塊200還包括第一websocket輸入/輸出端口230,用于與網(wǎng)關(guān)模塊建立基于websocket協(xié)議的通信連接。
事件流處理模塊200還包括一個(gè)數(shù)據(jù)庫220,用于記錄不同設(shè)備間的通信模型。
例如,如果數(shù)據(jù)庫中記錄a設(shè)備可以通過通信適配模塊發(fā)布消息,并且b設(shè)備訂閱了該a設(shè)備的發(fā)布服務(wù),那么當(dāng)設(shè)備a發(fā)布消息時(shí),設(shè)備b就會(huì)通過通信適配模塊收到a發(fā)布的消息。
本實(shí)施例提出一種可以結(jié)合mqtt協(xié)議和websocket協(xié)議的物聯(lián)網(wǎng)通信架構(gòu),優(yōu)點(diǎn)在于:
(1)mqtt協(xié)議的消息格式極其簡單,最短只有兩個(gè)字節(jié),可以實(shí)現(xiàn)高效消息通信,減小設(shè)備端和服務(wù)端負(fù)荷。
(2)websocket協(xié)議可以維護(hù)客戶端和服務(wù)端之間的雙向通信,進(jìn)而可以確保消息的實(shí)時(shí)性。
實(shí)施例二
本實(shí)施例為設(shè)備注冊(cè)流程的具體解釋。
參考圖1,步驟s1即為設(shè)備注冊(cè)流程。
如圖4所示為本實(shí)施例中設(shè)備注冊(cè)流程圖,該步驟具體為:
s11.終端設(shè)備發(fā)送注冊(cè)請(qǐng)求消息至網(wǎng)關(guān)模塊;所述注冊(cè)請(qǐng)求消息包括:終端設(shè)備對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí)、通信協(xié)議、設(shè)備類型、設(shè)備名稱、設(shè)備角色及時(shí)間戳;
s12.網(wǎng)關(guān)模塊將所述注冊(cè)請(qǐng)求消息轉(zhuǎn)發(fā)至通信適配模塊;
s13.通信適配模塊將所述注冊(cè)請(qǐng)求消息存儲(chǔ)至數(shù)據(jù)庫內(nèi),并創(chuàng)建注冊(cè)信息表;
s14.通信適配模塊通過網(wǎng)關(guān)模塊向終端設(shè)備返回是否注冊(cè)成功的消息。
實(shí)施例三
本實(shí)施例為設(shè)備訂閱流程的具體解釋。
參考圖1,步驟s2即為設(shè)備訂閱流程。
如圖5所示為本實(shí)施例中設(shè)備訂閱流程圖,該步驟具體為:
s21.終端設(shè)備發(fā)送訂閱請(qǐng)求消息至網(wǎng)關(guān)模塊;所述訂閱請(qǐng)求消息包括:終端設(shè)備對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí)、訂閱對(duì)象設(shè)備對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí)、接收數(shù)據(jù)類型、接收數(shù)據(jù)格式及時(shí)間戳;
s22.網(wǎng)關(guān)模塊的協(xié)議轉(zhuǎn)換模塊將所述訂閱請(qǐng)求消息從mqtt協(xié)議類型轉(zhuǎn)換至websocket協(xié)議類型;
s23.網(wǎng)關(guān)模塊將所述訂閱請(qǐng)求消息發(fā)送至通信適配模塊,通信適配模塊將接收的訂閱請(qǐng)求消息存儲(chǔ)至數(shù)據(jù)庫內(nèi),并創(chuàng)建一用于區(qū)別不同設(shè)備之間的發(fā)布訂閱關(guān)系的唯一標(biāo)識(shí);
s24.通信適配模塊通過網(wǎng)關(guān)模塊向終端設(shè)備返回是否訂閱成功的消息。
實(shí)施例四
本實(shí)施例為設(shè)備消息發(fā)布流程的具體解釋。
參考圖1,步驟s3即為設(shè)備消息發(fā)布流程。
如圖6所示為本實(shí)施例中設(shè)備消息發(fā)布流程圖,該步驟具體為:
s31.終端設(shè)備發(fā)送發(fā)布消息至網(wǎng)關(guān)模塊;所述發(fā)布消息包括:終端設(shè)備對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí)、發(fā)布消息的數(shù)據(jù)類型、發(fā)布消息的數(shù)據(jù)格式、設(shè)備類型及時(shí)間戳;
s32.網(wǎng)關(guān)模塊的協(xié)議轉(zhuǎn)換模塊將所述發(fā)布消息從mqtt協(xié)議類型轉(zhuǎn)換至websocket協(xié)議類型;
s33.網(wǎng)關(guān)模塊將所述發(fā)布消息發(fā)送至通信適配模塊;
s34.通信適配模塊接收并解析所述發(fā)布消息,并從數(shù)據(jù)庫內(nèi)獲取訂閱了所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備信息;
通信適配模塊發(fā)送所述發(fā)布消息及所述其他終端設(shè)備信息至網(wǎng)關(guān)模塊;
s35.網(wǎng)關(guān)模塊的協(xié)議轉(zhuǎn)換模塊將所述發(fā)布消息從websocket協(xié)議類型轉(zhuǎn)換至mqtt協(xié)議類型;
s36.網(wǎng)關(guān)模塊的協(xié)議轉(zhuǎn)換模塊將所述發(fā)布消息轉(zhuǎn)發(fā)至訂閱了所述終端設(shè)備消息發(fā)布服務(wù)的其他終端設(shè)備。
實(shí)施例五
本實(shí)施例中,網(wǎng)關(guān)模塊和事件流處理模塊之間的通信可以通過ssl/https進(jìn)行加密,利用websocket協(xié)議的特性,網(wǎng)關(guān)模塊和事件流處理模塊之間可以保持連接,達(dá)到了消息實(shí)時(shí)性的目的,而代價(jià)只是2到3個(gè)字節(jié)的ping數(shù)據(jù)包。
本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。