本發(fā)明涉及智能家居通信技術(shù)領(lǐng)域,特別涉及一種基于mqtt多層級(jí)聯(lián)的消息路由方法。
背景技術(shù):
智能家居網(wǎng)關(guān)能夠?qū)⒓彝ル娖髟O(shè)備通過(guò)有線方式、無(wú)線方式與它連接后通過(guò)一個(gè)統(tǒng)一的接口與外部網(wǎng)絡(luò)進(jìn)行通信,在智能家居中擔(dān)任核心角色。但是目前智能家居方案存在諸多不足,一般家庭內(nèi)部只部署一個(gè)網(wǎng)關(guān),單網(wǎng)關(guān)所能提供的硬件接口有限,無(wú)線通信區(qū)域范圍受限。雖然采用多網(wǎng)關(guān)的結(jié)構(gòu)可以彌補(bǔ)物理距離和硬件資源不足的缺陷,但是多個(gè)網(wǎng)關(guān)之間的連接和管理是一大難題,所以較少被采用。
當(dāng)前物聯(lián)網(wǎng)存在很多傳輸協(xié)議,其中mqtt(messagequeuingtelemetrytransport,消息隊(duì)列遙測(cè)傳輸)是由ibm公司開(kāi)發(fā),運(yùn)行與tcp/ip之上、基于消息推送、可靠、穩(wěn)健、開(kāi)源的協(xié)議,在通用性、可擴(kuò)展性、兼容性、耗能和流量等方面都有明顯優(yōu)勢(shì)。但是當(dāng)前基于mqtt協(xié)議的網(wǎng)絡(luò)通信存在以下兩個(gè)問(wèn)題:由于mqtt通信多采用集中星型網(wǎng)絡(luò)拓?fù)洌趥鹘y(tǒng)的mqtt遠(yuǎn)程控制中,家庭內(nèi)的多個(gè)智能家居網(wǎng)關(guān)可以各自通過(guò)互聯(lián)網(wǎng)和智能家居服務(wù)平臺(tái)的mqttbroker進(jìn)行連接通信,這樣對(duì)于一個(gè)家庭來(lái)說(shuō),多個(gè)網(wǎng)關(guān),對(duì)外就存在著多個(gè)通信的接口,平臺(tái)對(duì)同一家庭多個(gè)網(wǎng)關(guān)管理不方便,也對(duì)多個(gè)家庭的多個(gè)網(wǎng)關(guān)管理不便。另一個(gè)問(wèn)題是當(dāng)家庭內(nèi)部存在多個(gè)網(wǎng)關(guān)時(shí),用戶需要訪問(wèn)不同的網(wǎng)關(guān)去控制不同區(qū)域內(nèi)的家電設(shè)備。
針對(duì)當(dāng)前智能家居方案的不足和mqtt協(xié)議通信的特點(diǎn),本發(fā)明提出了一種基于mqtt多層級(jí)聯(lián)的消息路由方法,改進(jìn)mqtt協(xié)議的集中星型網(wǎng)絡(luò)拓?fù)?,支持多層?jí)聯(lián)的網(wǎng)關(guān)拓?fù)?,使用多網(wǎng)關(guān)的智能家居方案,實(shí)現(xiàn)多網(wǎng)關(guān)之間的多層級(jí)聯(lián)組網(wǎng)并進(jìn)行消息路由。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供基于mqtt多層級(jí)聯(lián)的消息路由方法,改進(jìn)mqtt協(xié)議的集中星型網(wǎng)絡(luò)拓?fù)?,支持多層?jí)聯(lián)的網(wǎng)關(guān)拓?fù)洌С侄嗑W(wǎng)關(guān)的連接組網(wǎng)和消息路由,解決當(dāng)前智能家居多網(wǎng)關(guān)的連接、通信和管理問(wèn)題,并支持家庭中根據(jù)自定義規(guī)則將家電設(shè)備劃分于不同區(qū)域進(jìn)行安全快捷的內(nèi)網(wǎng)控制和小范圍管理。
本發(fā)明的目的至少通過(guò)如下技術(shù)方案之一實(shí)現(xiàn)。
一種基于mqtt多層級(jí)聯(lián)的消息路由方法,包括基于mqtt的多網(wǎng)關(guān)組網(wǎng),路由下行和路由上行;
所述基于mqtt多網(wǎng)關(guān)組網(wǎng)將新網(wǎng)關(guān)添加到原有網(wǎng)絡(luò)中,在新網(wǎng)關(guān)上添加新的家電設(shè)備,新網(wǎng)關(guān)與其他網(wǎng)關(guān)相連形成基于mqtt的多層級(jí)聯(lián)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
所述路由下行指由mqtt控制端發(fā)送的消息路由到家電設(shè)備,路由下行是在基于mqtt的多層級(jí)聯(lián)的網(wǎng)絡(luò)中查找網(wǎng)關(guān)的下級(jí)路由規(guī)則,并將消息轉(zhuǎn)發(fā)至下級(jí)網(wǎng)關(guān);
所述路由上行指家電設(shè)備的反饋消息路由到mqtt控制端,其中包括家電設(shè)備的反饋消息路由到所有mqtt控制端和家電設(shè)備的反饋消息路由到其中一個(gè)mqtt控制端。
進(jìn)一步地,所述的方法包括如下步驟:
步驟一、基于mqtt的多網(wǎng)關(guān)組網(wǎng)。
步驟二、在基于mqtt多網(wǎng)關(guān)組網(wǎng)的基礎(chǔ)上進(jìn)行路由下行,由mqtt控制端發(fā)送的消息路由到家電設(shè)備。
步驟三、在基于mqtt多網(wǎng)關(guān)組網(wǎng)的基礎(chǔ)上進(jìn)行路由上行,家電設(shè)備的反饋消息路由到mqtt控制端。
上述步驟一中基于mqtt的多網(wǎng)關(guān)組網(wǎng)包括下述步驟:
(1)、網(wǎng)關(guān)啟動(dòng)時(shí)先查詢本地?cái)?shù)據(jù)庫(kù)是否存在自身的uid(uniqueidentifier,全局唯一標(biāo)識(shí))。若不存在,則根據(jù)snowflake算法生成uid,uid用于標(biāo)識(shí)網(wǎng)關(guān),網(wǎng)關(guān)自動(dòng)訂閱主題“/uid/#”(mqtt主題格式,斜線(/)是用來(lái)分隔一棵主題樹(shù)里的各個(gè)層次,它提供了一個(gè)層次結(jié)構(gòu)的主題空間。數(shù)字符號(hào)(#)即多層次通配符,用來(lái)匹配一個(gè)主題內(nèi)的任意層次。“/uid/#”表示在“/uid/”層次下的所有主題)。
(2)、接著查詢本地?cái)?shù)據(jù)庫(kù),用戶通過(guò)web頁(yè)面配置該節(jié)點(diǎn)的上一級(jí)路由節(jié)點(diǎn)的ip地址。
(3)、然后uid網(wǎng)關(guān)與上一級(jí)網(wǎng)關(guān)uid0進(jìn)行連接。獲得上級(jí)網(wǎng)關(guān)的路由規(guī)則“.../uid0/#”(省略號(hào)“...”指該上級(jí)網(wǎng)關(guān)可能存在比自身層次高的網(wǎng)關(guān),路由規(guī)則“.../uid0/#”指可以路由到主題層次為“.../uid0/”以下的所有主題),更新本地路由表中上級(jí)網(wǎng)關(guān)的路由規(guī)則為“.../uid0/#”,當(dāng)前自身的路由規(guī)則為“.../uid0/uid/#”。
(4)、上一級(jí)網(wǎng)關(guān)接收到uid網(wǎng)關(guān)連接后,在自身的下級(jí)網(wǎng)關(guān)路由規(guī)則中添加一條“.../uid/#”。
(5)、uid網(wǎng)關(guān)啟動(dòng)設(shè)備發(fā)現(xiàn)程序、將搜索到且信息匹配的家電設(shè)備的sid(systemidentification,系統(tǒng)標(biāo)識(shí)碼)與自身的uid,以u(píng)id/sid的格式作為家電設(shè)備的全局唯一標(biāo)識(shí)(usid),同時(shí)網(wǎng)關(guān)在自身的設(shè)備列表中記錄“sid”和路由規(guī)則。
(6)、uid網(wǎng)關(guān)將usid上報(bào)給上一級(jí)網(wǎng)關(guān),上級(jí)網(wǎng)關(guān)在自身的設(shè)備列表中記錄“uid/sid”和路由規(guī)則。
(7)、每一級(jí)網(wǎng)關(guān)遞歸執(zhí)行上一步操作,直到usid上報(bào)到智能家居服務(wù)平臺(tái)為止。
優(yōu)選的,所述步驟(5)中,網(wǎng)關(guān)在自身的設(shè)備列表中記錄“sid”和路由規(guī)則具體操作如下:
由于當(dāng)前網(wǎng)關(guān)搜索到sid的家電設(shè)備直連到網(wǎng)關(guān)上,因此路由規(guī)則填寫(xiě)網(wǎng)關(guān)自己的uid,并且后綴填寫(xiě)該設(shè)備接到網(wǎng)關(guān)設(shè)備的哪個(gè)硬件接口,如串口uart1上,則設(shè)備列表中記錄“sid”,路由規(guī)則“uid/uart0”。
優(yōu)選的,所述步驟(6)中,uid網(wǎng)關(guān)將usid上報(bào)給上一級(jí)網(wǎng)關(guān),上級(jí)網(wǎng)關(guān)在自身的設(shè)備列表中記錄“uid/sid”和路由規(guī)則具體操作如下:
uid網(wǎng)關(guān)查找路由表中上級(jí)網(wǎng)關(guān)的路由規(guī)則為“.../uid0/”,路由規(guī)則作為發(fā)布主題的前綴。例如網(wǎng)關(guān)發(fā)布通知消息,主題為“.../uid0/devinfo_notify”,內(nèi)容為usid;標(biāo)識(shí)為uid0的上級(jí)網(wǎng)關(guān)默認(rèn)自動(dòng)訂閱主題為“.../uid0/#”的消息,便能接收到主題前綴為“.../uid0/”的所有與自身相關(guān)的消息。標(biāo)識(shí)為uid0的上級(jí)網(wǎng)關(guān)接收到usid后在自身原有的設(shè)備列表中添加記錄“sid”,路由規(guī)則為下級(jí)網(wǎng)關(guān)“uid”。
上述步驟二中在基于mqtt多網(wǎng)關(guān)組網(wǎng)的基礎(chǔ)上進(jìn)行路由下行,由mqtt控制端發(fā)送的消息路由到家電設(shè)備包括下述小步驟:
(1)、經(jīng)過(guò)步驟一組成的多層級(jí)聯(lián)網(wǎng)關(guān)結(jié)構(gòu)中,任意一個(gè)網(wǎng)關(guān)接收到來(lái)自mqtt控制端的消息時(shí),先提取消息中的被控對(duì)象。
(2)、接著查詢本地設(shè)備列表。
(3)、若被控對(duì)象不存在于本地設(shè)備列表中,則上報(bào)上一級(jí)網(wǎng)關(guān),最終上報(bào)到服務(wù)平臺(tái),服務(wù)平臺(tái)將此消息丟棄。
(4)、若被控對(duì)象存在于本地設(shè)備列表中,查詢路由規(guī)則,直接發(fā)送該消息給路由規(guī)則中的下級(jí)網(wǎng)關(guān),如果下一級(jí)是自身,則通過(guò)相應(yīng)透?jìng)髂K將消息發(fā)送給家電設(shè)備。
優(yōu)選的,所述步驟(1)(2)中,uid0網(wǎng)關(guān)收到mqtt控制消息主題為“.../uid0/control/sid”,先提取出被控對(duì)象sid,接著查詢本地設(shè)備列表存在sid,路由規(guī)則為下級(jí)網(wǎng)關(guān)“uid”,修改主題中uid0為uid,轉(zhuǎn)發(fā)該消息到下級(jí)網(wǎng)關(guān)。
上述步驟三中在基于mqtt多網(wǎng)關(guān)組網(wǎng)的基礎(chǔ)上進(jìn)行路由上行,家電設(shè)備的反饋消息路由到mqtt控制端包括兩種情況,一種是家電設(shè)備的反饋消息路由到所有mqtt控制端,一種是家電設(shè)備的反饋消息路由到具體某一mqtt控制端。
家電設(shè)備的反饋消息路由到所有mqtt控制端包括下述小步驟:
(1)、經(jīng)過(guò)步驟一組成的多層級(jí)聯(lián)網(wǎng)關(guān)結(jié)構(gòu)中,任意一個(gè)網(wǎng)關(guān)接收到來(lái)自家電設(shè)備的消息時(shí),查詢本地的移動(dòng)控制端列表,獲取直連到該網(wǎng)關(guān)的所有mqtt控制端。
(2)、接著將消息轉(zhuǎn)發(fā)給每一個(gè)直連的mqtt控制端。
(3)、將消息上報(bào)給上一級(jí)網(wǎng)關(guān),并且發(fā)送給它的下一級(jí)網(wǎng)關(guān)。上級(jí)網(wǎng)關(guān)接收到上行消息除了發(fā)送給自己上級(jí),還要發(fā)送給除了上報(bào)該消息的網(wǎng)關(guān)之外的其他下級(jí)網(wǎng)關(guān);下級(jí)網(wǎng)關(guān)接收到上行消息時(shí)只下發(fā)給下級(jí),每一個(gè)網(wǎng)關(guān)都會(huì)將消息轉(zhuǎn)發(fā)給所有直連的mqtt控制端,確保智能家居系統(tǒng)中所有mqtt控制端的信息同步。需注意的是,當(dāng)下級(jí)網(wǎng)關(guān)收到來(lái)自上級(jí)網(wǎng)關(guān)的上行消息時(shí),下級(jí)網(wǎng)關(guān)不再需要將上行消息上報(bào)給上級(jí)網(wǎng)關(guān),否則會(huì)形成廣播風(fēng)暴。
家電設(shè)備的反饋消息路由到具體某一mqtt控制端包括下述小步驟:
(1)、經(jīng)過(guò)步驟一組成的多層級(jí)聯(lián)網(wǎng)關(guān)結(jié)構(gòu)中,任意一個(gè)網(wǎng)關(guān)接收到來(lái)自家電設(shè)備的消息時(shí),查詢本地的移動(dòng)控制端列表,判斷是否包含目的mqtt控制端,若存在則發(fā)送到該目的mqtt控制端并停止,若不存在則發(fā)送到上級(jí)網(wǎng)關(guān)。
(2)、上級(jí)網(wǎng)關(guān)接收到消息,重復(fù)步驟(1),直至停止或者發(fā)送到服務(wù)平臺(tái)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
1)改進(jìn)了mqtt協(xié)議的集中星型網(wǎng)絡(luò)拓?fù)洌С侄鄬蛹?jí)聯(lián)的網(wǎng)關(guān)拓?fù)?。改進(jìn)后智能家居服務(wù)平臺(tái)的mqttbroker不需要同時(shí)管理來(lái)自同個(gè)家庭的多個(gè)網(wǎng)關(guān),每個(gè)家庭可以只有一個(gè)一級(jí)網(wǎng)關(guān)直連到服務(wù)平臺(tái),相當(dāng)一個(gè)家庭只提供一個(gè)對(duì)外接口,其余網(wǎng)關(guān)連接到一級(jí)網(wǎng)關(guān)以下;并且當(dāng)家庭內(nèi)部存在多個(gè)網(wǎng)關(guān)時(shí),用戶可以通過(guò)不同網(wǎng)關(guān)去控制不同區(qū)域內(nèi)的家電設(shè)備,而無(wú)需認(rèn)定具體某一網(wǎng)關(guān)才能控制該設(shè)備。
2)支持多網(wǎng)關(guān)的連接組網(wǎng)和消息路由,實(shí)現(xiàn)一種通過(guò)mqtt進(jìn)行多網(wǎng)關(guān)組網(wǎng)的方法。該方法能支持家庭中根據(jù)自定義規(guī)則將家電設(shè)備劃分于不同區(qū)域進(jìn)行安全快捷的內(nèi)網(wǎng)控制和小范圍管理,并擴(kuò)大無(wú)線通信區(qū)域范圍。比如支持將家庭內(nèi)部根據(jù)物理距離或者硬件通信接口劃分為不同小區(qū)域,如房間一劃分為區(qū)域一,房間二為區(qū)域二,方便用戶對(duì)不同區(qū)域進(jìn)行不同的控制和管理。
附圖說(shuō)明
圖1為實(shí)施例中實(shí)現(xiàn)的基于mqtt的多層級(jí)聯(lián)網(wǎng)關(guān)拓?fù)鋱D。
圖2為實(shí)施例中多網(wǎng)關(guān)組網(wǎng)流程示意圖。
圖3為具體實(shí)施過(guò)程中路由下行流程圖。
圖4為具體實(shí)施過(guò)程中路由上行到所有mqtt控制端流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體的實(shí)施例對(duì)本發(fā)明的實(shí)施方案做進(jìn)一步的說(shuō)明。
本實(shí)例的基于mqtt多層級(jí)聯(lián)的消息路由方法,主要由四個(gè)步驟組成,步驟如下:
步驟1:基于mqtt的多網(wǎng)關(guān)組網(wǎng):添加新網(wǎng)關(guān),家電設(shè)備連接到新網(wǎng)關(guān)。具體組網(wǎng)流程如圖2所示,最終形成圖1的多層級(jí)聯(lián)的網(wǎng)關(guān)拓?fù)鋱D。
a)網(wǎng)關(guān)啟動(dòng)時(shí)先查詢本地?cái)?shù)據(jù)庫(kù)是否存在自身的uid。若不存在,則根據(jù)snowflake算法生成uid,uid用于標(biāo)識(shí)網(wǎng)關(guān),網(wǎng)關(guān)自動(dòng)訂閱主題“/uid/#”。
例如啟動(dòng)新網(wǎng)關(guān),新網(wǎng)關(guān)查詢不到uid,根據(jù)snowflake算法生成uid,網(wǎng)關(guān)自動(dòng)訂閱主題“/uid/#”。
b)用戶通過(guò)web頁(yè)面配置該節(jié)點(diǎn)的上一級(jí)路由節(jié)點(diǎn)的ip地址。
c)uid網(wǎng)關(guān)與上一級(jí)網(wǎng)關(guān)進(jìn)行連接。如果上級(jí)網(wǎng)關(guān)標(biāo)識(shí)為uid0,并直連到智能家居服務(wù)平臺(tái),將獲得上級(jí)網(wǎng)關(guān)的路由規(guī)則“/uid0/#”,更新本地路由表中上級(jí)網(wǎng)關(guān)的路由規(guī)則為“/uid0/#”,當(dāng)前自身的路由規(guī)則為“/uid0/uid/#”。
d)上一級(jí)網(wǎng)關(guān)接收到uid網(wǎng)關(guān)連接后,在自身的下級(jí)網(wǎng)關(guān)路由規(guī)則中添加一條“/uid/#”。
e)uid網(wǎng)關(guān)啟動(dòng)設(shè)備發(fā)現(xiàn)程序、將搜索到且信息匹配的家電設(shè)備的sid與自身的uid,以u(píng)id/sid的格式作為家電設(shè)備的全局唯一標(biāo)識(shí),同時(shí)網(wǎng)關(guān)在自身的設(shè)備列表中記錄“sid”和路由規(guī)則。
f)uid網(wǎng)關(guān)將usid上報(bào)給上級(jí)網(wǎng)關(guān)uid0,上級(jí)網(wǎng)關(guān)在自身的設(shè)備列表中記錄“uid/sid”和路由規(guī)則“/uid”。
g)每一級(jí)網(wǎng)關(guān)遞歸執(zhí)行上一步操作,直到usid上報(bào)到智能家居服務(wù)平臺(tái)為止。
這里上級(jí)網(wǎng)關(guān)uid0由于直連服務(wù)平臺(tái),則將usid上報(bào)到智能家居服務(wù)平臺(tái)。
步驟2:用戶控制設(shè)備,數(shù)據(jù)路由下行,具體流程如圖3所示。
a)用戶使用mqtt控制端連上任一網(wǎng)關(guān),比如連上標(biāo)識(shí)為uid0網(wǎng)關(guān)。
b)用戶發(fā)送控制消息控制某一設(shè)備,比如發(fā)送主題為“/control/sid”控制標(biāo)識(shí)為sid的設(shè)備。
c)uid0網(wǎng)關(guān)使用最后“/”后綴提取出消息中被控對(duì)象為sid
d)uid0網(wǎng)關(guān)查找本地設(shè)備列表,存在sid,路由規(guī)則為“/uid”
e)uid0網(wǎng)關(guān)發(fā)布接收到的控制消息,主題為“/uid/control/sid”
f)下一級(jí)網(wǎng)關(guān)uid由于訂閱了主題“/uid/#”,于是接收到主題為“/uid/control/sid”的控制消息,同樣提取出消息被控對(duì)象sid,查找本地設(shè)備列表存在“uid/sid”,由后綴匹配可知存在sid,路由規(guī)則為“/uid/uart0”,于是轉(zhuǎn)發(fā)該消息到本地串口uart0
g)sid家電接收到來(lái)自串口uart0的控制消息。
步驟3:設(shè)備信息反饋給所有用戶,數(shù)據(jù)路由上行,具體流程如圖4所示。
a)任意一個(gè)網(wǎng)關(guān)接收到來(lái)自家電設(shè)備的消息時(shí),查詢本地的移動(dòng)控制端列表,獲取直連到該網(wǎng)關(guān)的所有mqtt控制端,接著將消息轉(zhuǎn)發(fā)給每一個(gè)直連的mqtt控制端。
比如sid設(shè)備狀態(tài)改變,生成設(shè)備狀態(tài)消息,通過(guò)uart0發(fā)送給uid網(wǎng)關(guān),uid網(wǎng)關(guān)先查詢本地移動(dòng)控制列表獲取mqtt控制端列表,逐一發(fā)送狀態(tài)消息給直連到自身的所有mqtt控制端。
b)上級(jí)網(wǎng)關(guān)接收到上行消息除了發(fā)送給自己上級(jí),還要發(fā)送給除了上報(bào)該消息的網(wǎng)關(guān)之外的其他下級(jí)網(wǎng)關(guān);下級(jí)網(wǎng)關(guān)接收到上行消息時(shí)只下發(fā)給下級(jí),每一個(gè)網(wǎng)關(guān)都會(huì)將消息轉(zhuǎn)發(fā)給所有直連的mqtt控制端,確保智能家居系統(tǒng)中所有mqtt控制端的信息同步。
比如uid網(wǎng)關(guān)將狀態(tài)消息發(fā)送給上級(jí)網(wǎng)關(guān)uid0,上級(jí)網(wǎng)關(guān)uid0接收到后將查詢上級(jí)路由規(guī)則,由于沒(méi)有上級(jí)了就發(fā)送給智能家居服務(wù)平臺(tái),否則發(fā)送給上級(jí)網(wǎng)關(guān);接著網(wǎng)關(guān)uid0查詢除了上報(bào)的網(wǎng)關(guān)uid之外其他下級(jí)網(wǎng)關(guān),由于沒(méi)有則停止,否則發(fā)送給下級(jí)網(wǎng)關(guān)。
同時(shí)uid0網(wǎng)關(guān)查詢本地的移動(dòng)控制端列表,將消息轉(zhuǎn)發(fā)給每一個(gè)直連的mqtt控制端。
步驟4:設(shè)備信息反饋給特定某個(gè)用戶,路由數(shù)據(jù)上行
a)任意一個(gè)網(wǎng)關(guān)接收到來(lái)自家電設(shè)備的消息時(shí),查詢本地的移動(dòng)控制端列表,判斷是否包含目的mqtt控制端,若存在則發(fā)送到該目的mqtt控制端并停止,若不存在則發(fā)送到上級(jí)網(wǎng)關(guān)。
比如sid設(shè)備狀態(tài)改變,生成設(shè)備狀態(tài)消息,并且只想通知標(biāo)識(shí)為uuid(universallyuniqueidentifier,通用唯一識(shí)別碼)的mqtt控制端,則在狀態(tài)消息中包含uuid,并通過(guò)串口uart0發(fā)送給uid網(wǎng)關(guān)。uid網(wǎng)關(guān)接收到消息后,提取出目的mqtt控制端uuid,并查詢本地的移動(dòng)控制端列表是否存在uuid,若存在則發(fā)送并停止,若不存在則查詢上級(jí)網(wǎng)關(guān)路由規(guī)則,并發(fā)送給上級(jí)網(wǎng)關(guān)uid0。
b)上級(jí)網(wǎng)關(guān)接收到消息,重復(fù)執(zhí)行上一步直到發(fā)送到目的mqtt控制端或者服務(wù)平臺(tái)。
上級(jí)網(wǎng)關(guān)uid0收到消息先解析出目的mqtt控制端,再查詢本地移動(dòng)控制列表判斷其是否存在,若存在則發(fā)送給該mqtt控制端并停止,若不存在,則通知它的上一級(jí)網(wǎng)關(guān),由于uid0沒(méi)有上級(jí)網(wǎng)關(guān),所以發(fā)送給服務(wù)平臺(tái)并停止。
上述步驟為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。