最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種基于MQTT的訪問(wèn)認(rèn)證的方法及設(shè)備與流程

文檔序號(hào):11156680閱讀:640來(lái)源:國(guó)知局
一種基于MQTT的訪問(wèn)認(rèn)證的方法及設(shè)備與制造工藝

本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種基于MQTT的訪問(wèn)認(rèn)證的方法及設(shè)備。



背景技術(shù):

將日常事物連接到互聯(lián)網(wǎng)技術(shù)迅速發(fā)展,智慧園區(qū)的建設(shè)越來(lái)越多的滿足用戶設(shè)備的需求。在智慧園區(qū)的建設(shè)中,MQTT(消息隊(duì)列遙測(cè)傳輸協(xié)議)協(xié)議由于優(yōu)良的設(shè)計(jì)而成為一個(gè)被普遍接受的協(xié)議,針對(duì)MQTT的認(rèn)證擴(kuò)展和安全傳輸成功必不可少的功能,目前采用的emqtt方案所提供的認(rèn)證方式依賴(lài)于其配置文件,極大的增加了系統(tǒng)的復(fù)雜性。

申請(qǐng)內(nèi)容

本申請(qǐng)的一個(gè)目的是提供一種基于MQTT的訪問(wèn)認(rèn)證的方法及設(shè)備,解決現(xiàn)有技術(shù)中的認(rèn)證方式依賴(lài)于配置文件,由于配置出錯(cuò)導(dǎo)致的問(wèn)題。

根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種在客戶端的基于MQTT的訪問(wèn)認(rèn)證的方法,所述方法包括:

將所述MQTT的客戶端的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備;

基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證結(jié)果向所述服務(wù)端設(shè)備發(fā)送訂閱主題認(rèn)證請(qǐng)求;

基于所述服務(wù)端設(shè)備反饋的訂閱主題認(rèn)證請(qǐng)求結(jié)果將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備;

基于所述服務(wù)端設(shè)備反饋的發(fā)布消息認(rèn)證結(jié)果與所述服務(wù)端設(shè)備確定連接。

進(jìn)一步地,所述客戶端包括MQTT設(shè)備和MQTT設(shè)備擁有用戶時(shí),將所述MQTT的客戶端的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備,包括:

向所述服務(wù)端設(shè)備發(fā)送所述MQTT設(shè)備擁有用戶及所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;

接收所述服務(wù)端設(shè)備為所述MQTT設(shè)備分配的唯一標(biāo)識(shí)信息;

基于所述訪問(wèn)密匙、加密密匙和所述唯一標(biāo)識(shí)信息將所述MQTT設(shè)備的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備。

進(jìn)一步地,基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證結(jié)果向所述服務(wù)端設(shè)備發(fā)送訂閱主題認(rèn)證請(qǐng)求,包括:

基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證成功的接入認(rèn)證結(jié)果,所述MQTT設(shè)備通過(guò)訂閱主題的過(guò)濾器向所述服務(wù)端發(fā)送所述訂閱主題認(rèn)證請(qǐng)求,其中,所述訂閱主題的過(guò)濾器根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、唯一標(biāo)識(shí)信息及控制消息傳輸通道確定,

或根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定。

進(jìn)一步地,基于所述服務(wù)端設(shè)備反饋的訂閱主題認(rèn)證請(qǐng)求結(jié)果將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備,包括:

基于所述服務(wù)端設(shè)備反饋的訂閱成功的訂閱主題認(rèn)證請(qǐng)求結(jié)果,根據(jù)報(bào)文中確定的主題名將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備。

進(jìn)一步地,所述報(bào)文中的主題名包括:發(fā)布消息的報(bào)文中的主題名、回復(fù)控制消息的報(bào)文中的主題名和回復(fù)查詢消息的報(bào)文中的主題名,

所述方法還包括:

根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及數(shù)據(jù)消息傳輸通道確定所述發(fā)布消息的報(bào)文中的主題名;

根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制回復(fù)消息傳輸通道確定所述回復(fù)控制消息的報(bào)文中的主題名;

根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢回復(fù)消息傳輸通道確定所述回復(fù)查詢消息的報(bào)文中的主題名。

進(jìn)一步地,所述方法還包括:

所述報(bào)文中的遺囑消息采用預(yù)設(shè)的MQTT設(shè)備消息字符串,所述遺囑消息的主題格式根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息和離線消息傳輸通道確定。

進(jìn)一步地,所述客戶端包括應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備及所述MQTT設(shè)備擁有用戶時(shí),將所述MQTT的客戶端的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備,包括:

向所述服務(wù)端設(shè)備發(fā)送所述應(yīng)用程序、所述應(yīng)用程序開(kāi)發(fā)用戶、所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備擁有用戶及所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;

接收所述服務(wù)端設(shè)備為所述應(yīng)用程序和所述MQTT設(shè)備分別分配的唯一標(biāo)識(shí)信息;

基于所述訪問(wèn)密匙、加密密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息和所述應(yīng)用程序的唯一標(biāo)識(shí)信息將所述應(yīng)用程序的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備。

進(jìn)一步地,基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證結(jié)果向所述服務(wù)端設(shè)備發(fā)送訂閱主題認(rèn)證請(qǐng)求,包括:

基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證成功的接入認(rèn)證結(jié)果,所述應(yīng)用程序通過(guò)訂閱主題的過(guò)濾器向所述服務(wù)端發(fā)送所述訂閱主題認(rèn)證請(qǐng)求,

其中,所述訂閱主題的過(guò)濾器根據(jù)以下至少任一種確定:

根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制消息傳輸通道確定所述過(guò)濾器;

根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定所述過(guò)濾器;

根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的所述MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及數(shù)據(jù)消息傳輸通道確定所述過(guò)濾器;

根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的所述MQTT設(shè)備的擁有用戶的訪問(wèn)密匙及所述MQTT設(shè)備的唯一標(biāo)識(shí)信息確定所述過(guò)濾器。

進(jìn)一步地,基于所述服務(wù)端設(shè)備反饋的訂閱主題認(rèn)證請(qǐng)求結(jié)果將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備,包括:

基于所述服務(wù)端設(shè)備反饋的訂閱成功的訂閱主題認(rèn)證請(qǐng)求結(jié)果,所述應(yīng)用程序授權(quán)的MQTT設(shè)備根據(jù)報(bào)文中確定的主題名將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備。

進(jìn)一步地,所述報(bào)文中的主題名包括:發(fā)布控制消息的報(bào)文中的主題名和發(fā)布查詢消息的報(bào)文中的主題名,

所述方法還包括:

根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制消息傳輸通道確定所述發(fā)布控制消息的報(bào)文中的主題名;

根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定所述發(fā)布查詢消息的報(bào)文中的主題名。

進(jìn)一步地,所述方法還包括:

所述報(bào)文中的遺囑消息采用預(yù)設(shè)的應(yīng)用程序消息字符串,所述遺囑消息的主題格式根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶的訪問(wèn)密匙、所述應(yīng)用程序的唯一標(biāo)識(shí)信息和離線消息傳輸通道確定。

根據(jù)本申請(qǐng)另一方面,提供了一種在服務(wù)設(shè)備端基于MQTT的訪問(wèn)認(rèn)證的方法,所述方法包括:

基于所述MQTT的客戶端發(fā)送的接入認(rèn)證請(qǐng)求對(duì)所述客戶端進(jìn)行認(rèn)證,并向所述客戶端反饋接入認(rèn)證結(jié)果;

基于所述客戶端發(fā)送的訂閱主題認(rèn)證請(qǐng)求判斷所述客戶端是否成功訂閱主題,并向所述客戶端反饋訂閱主題認(rèn)證請(qǐng)求結(jié)果;

接收所述客戶端發(fā)布的消息認(rèn)證請(qǐng)求后,根據(jù)報(bào)文中的服務(wù)質(zhì)量確定發(fā)布消息認(rèn)證結(jié)果,并根據(jù)所述發(fā)布消息認(rèn)證結(jié)果確定與所述客戶端的連接。

根據(jù)本申請(qǐng)?jiān)僖粋€(gè)方面,還提供了一種基于MQTT的訪問(wèn)認(rèn)證的客戶端,所述客戶端包括:

接入認(rèn)證請(qǐng)求裝置,用于將所述客戶端的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備;

訂閱主題認(rèn)證請(qǐng)求裝置,用于基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證結(jié)果向所述服務(wù)端設(shè)備發(fā)送訂閱主題認(rèn)證請(qǐng)求;

發(fā)布消息認(rèn)證請(qǐng)求裝置,用于基于所述服務(wù)端設(shè)備反饋的訂閱主題認(rèn)證請(qǐng)求結(jié)果將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備;

確定連接裝置,用于基于所述服務(wù)端設(shè)備反饋的發(fā)布消息認(rèn)證結(jié)果與所述服務(wù)端設(shè)備確定連接。

根據(jù)本申請(qǐng)另一方面,還提供了一種基于MQTT的訪問(wèn)認(rèn)證的服務(wù)設(shè)備,其中,所述服務(wù)設(shè)備包括:

接入認(rèn)證裝置,用于基于客戶端發(fā)送的接入認(rèn)證請(qǐng)求對(duì)所述客戶端進(jìn)行認(rèn)證,并向所述客戶端反饋接入認(rèn)證結(jié)果;

主題認(rèn)證裝置,用于基于所述客戶端發(fā)送的訂閱主題認(rèn)證請(qǐng)求判斷所述客戶端是否成功訂閱主題,并向所述客戶端反饋訂閱主題認(rèn)證請(qǐng)求結(jié)果;

消息認(rèn)證裝置,用于接收所述客戶端發(fā)布的消息認(rèn)證請(qǐng)求后,根據(jù)報(bào)文中的服務(wù)質(zhì)量確定發(fā)布消息認(rèn)證結(jié)果,并根據(jù)所述發(fā)布消息認(rèn)證結(jié)果確定與所述客戶端的連接。

與現(xiàn)有技術(shù)相比,本申請(qǐng)通過(guò)將所述MQTT的客戶端的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備;基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證結(jié)果向所述服務(wù)端設(shè)備發(fā)送訂閱主題認(rèn)證請(qǐng)求;基于所述服務(wù)端設(shè)備反饋的訂閱主題認(rèn)證請(qǐng)求結(jié)果將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備;基于所述服務(wù)端設(shè)備反饋的發(fā)布消息認(rèn)證結(jié)果與所述服務(wù)端設(shè)備確定連接。實(shí)現(xiàn)了對(duì)MQTT客戶端的接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證及對(duì)物聯(lián)網(wǎng)平臺(tái)中的MQTT設(shè)備、MQTT設(shè)備擁有者、應(yīng)用程序和應(yīng)用程序開(kāi)發(fā)者的管理功能,減少了系統(tǒng)由于配置出錯(cuò)導(dǎo)致的問(wèn)題,并提供了相應(yīng)的網(wǎng)頁(yè)界面使用戶可以更直觀的使用由MQTT客戶端與服務(wù)端確定的系統(tǒng)。

附圖說(shuō)明

通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:

圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種在客戶端的基于MQTT的訪問(wèn)認(rèn)證的方法流程示意圖;

圖2示出的本申請(qǐng)一實(shí)施例中客戶端與服務(wù)端之間的訪問(wèn)認(rèn)證的交互示意圖;

圖3示出根據(jù)本申請(qǐng)另一個(gè)方面的一種基于MQTT的訪問(wèn)認(rèn)證的客戶端的結(jié)構(gòu)示意圖。

附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。

具體實(shí)施方式

下面結(jié)合附圖對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)描述。

在本申請(qǐng)一個(gè)典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。

內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。

計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類(lèi)型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤(pán)只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(pán)(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。

圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種在客戶端的基于MQTT的訪問(wèn)認(rèn)證的方法流程示意圖,所述方法包括:步驟S11~步驟S14,

在步驟S11中,將所述MQTT的客戶端的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備;在本申請(qǐng)實(shí)施例中,將MQTT客戶端進(jìn)行接入認(rèn)證,在此,接入認(rèn)證包括MQTT設(shè)備的接入認(rèn)證和應(yīng)用程序(APP)的接入認(rèn)證。針對(duì)MQTT設(shè)備和APP的接入認(rèn)證請(qǐng)求,有不同的接入認(rèn)證流程,實(shí)現(xiàn)對(duì)MQTT設(shè)備、MQTT設(shè)備擁有用戶、APP和APP開(kāi)發(fā)用戶的管理。

在步驟S12中,基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證結(jié)果向所述服務(wù)端設(shè)備發(fā)送訂閱主題認(rèn)證請(qǐng)求;在本申請(qǐng)實(shí)施例中,接入認(rèn)證通過(guò)后,MQTT的客戶端可以訂閱相關(guān)主題,訂閱主題時(shí)按照預(yù)設(shè)的主題格式進(jìn)行,若嘗試其他主題的格式則會(huì)導(dǎo)致錯(cuò)誤,訂閱失敗。

在步驟S13中,基于所述服務(wù)端設(shè)備反饋的訂閱主題認(rèn)證請(qǐng)求結(jié)果將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備;在本申請(qǐng)實(shí)施例中,當(dāng)訂閱主題成功后,MQTT的客戶端開(kāi)始發(fā)布消息,發(fā)布消息的PUBLISH(發(fā)布)報(bào)文、回復(fù)控制消息的PUBLISH(發(fā)布)報(bào)文及回復(fù)查詢消息的PUBLISH(發(fā)布)報(bào)文中的主題名需要按照預(yù)設(shè)的規(guī)則,若非法使用其他主題名進(jìn)行發(fā)布將導(dǎo)致服務(wù)端斷開(kāi)連接。

在步驟S14中,基于所述服務(wù)端設(shè)備反饋的發(fā)布消息認(rèn)證結(jié)果與所述服務(wù)端設(shè)備確定連接。在此,當(dāng)發(fā)布消息認(rèn)證結(jié)果為成功,則保持客戶端與服務(wù)端的連接,可以繼續(xù)在客戶端與服務(wù)端之間進(jìn)行安全傳輸,當(dāng)發(fā)布消息認(rèn)證結(jié)果為失敗,則將斷開(kāi)與服務(wù)端之間的連接,保證消息傳輸?shù)臏?zhǔn)確性和安全性。

優(yōu)選地,當(dāng)所述客戶端包括MQTT設(shè)備和MQTT設(shè)備擁有用戶時(shí),在步驟S11中,向所述服務(wù)端設(shè)備發(fā)送所述MQTT設(shè)備擁有用戶及所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;接收所述服務(wù)端設(shè)備為所述MQTT設(shè)備分配的唯一標(biāo)識(shí)信息;基于所述訪問(wèn)密匙、加密密匙和所述唯一標(biāo)識(shí)信息將所述MQTT設(shè)備的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備。在此,首先申請(qǐng)MQTT設(shè)備擁有用戶owner賬號(hào),在管理界面中申請(qǐng)?jiān)L問(wèn)密匙(accessKey)和加密密匙(secretKey);接著,在管理界面中添加新的MQTT設(shè)備,為每個(gè)待接入的MQTT設(shè)備分配唯一標(biāo)識(shí)信息deviceId,其中,MQTT設(shè)備為智慧園區(qū)的采集設(shè)備,能夠接入到智慧園區(qū)的系統(tǒng)中;需要說(shuō)明的是,訪問(wèn)密匙(accessKey)用來(lái)訪問(wèn)系統(tǒng)提供的一些應(yīng)用程序的接口,用于MQTT協(xié)議中連接(CONNECT)報(bào)文中的user name字段(用戶名字段),deviceId用于MQTT協(xié)議中的CONNECT報(bào)文中的ClinetId字段(客戶端標(biāo)識(shí)符),secretKey用于對(duì)MQTT協(xié)議中的CONNECT報(bào)文中的Payload(有效載荷)中的ClinetId字段(客戶端標(biāo)識(shí)符)、Will Topic(遺囑主題)、Will Message(遺囑消息)、User Name(用戶名)字段進(jìn)行簽名,簽名用于MQTT協(xié)議中的CONNECT報(bào)文中的Password(密碼)字段。

需要說(shuō)明的是,Will Topic(遺囑主題)、Will Message(遺囑消息)是由客戶端預(yù)先定義的主題和對(duì)應(yīng)消息,附加在CONNECT報(bào)文的可變頭部中,在客戶端連接出現(xiàn)異常的情況下,由服務(wù)器主動(dòng)發(fā)布此消息。

優(yōu)選地,在步驟S12中,基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證成功的接入認(rèn)證結(jié)果,所述MQTT設(shè)備通過(guò)訂閱主題的過(guò)濾器向所述服務(wù)端發(fā)送所述訂閱主題認(rèn)證請(qǐng)求,其中,所述訂閱主題的過(guò)濾器根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、唯一標(biāo)識(shí)信息及控制消息傳輸通道確定,或根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定。在本申請(qǐng)一實(shí)施例中,訂閱主題時(shí)必須使用{{MQTT設(shè)備擁有用戶的訪問(wèn)密匙}}/{{MQTT設(shè)備ID}}/CONTROL,或{{MQTT設(shè)備擁有用戶的訪問(wèn)密匙}}/{{MQTT設(shè)備ID}}/QUERY作為主題過(guò)濾器,嘗試訂閱任何其他主題會(huì)導(dǎo)致失敗,當(dāng)訂閱失敗后,服務(wù)端將在對(duì)應(yīng)字節(jié)設(shè)置0x80以示相關(guān)主題未訂閱成功。其中,CONTROL為控制消息傳輸通道,QUERY為查詢消息傳輸通道。

優(yōu)選地,在步驟S13中,基于所述服務(wù)端設(shè)備反饋的訂閱成功的訂閱主題認(rèn)證請(qǐng)求結(jié)果,根據(jù)報(bào)文中確定的主題名將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備。在本申請(qǐng)一實(shí)施例中,所述報(bào)文中的主題名包括:發(fā)布消息的報(bào)文中的主題名、回復(fù)控制消息的報(bào)文中的主題名和回復(fù)查詢消息的報(bào)文中的主題名,優(yōu)選地,所述方法還包括:根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及數(shù)據(jù)消息傳輸通道確定所述發(fā)布消息的報(bào)文中的主題名;根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制回復(fù)消息傳輸通道確定所述回復(fù)控制消息的報(bào)文中的主題名;根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢回復(fù)消息傳輸通道確定所述回復(fù)查詢消息的報(bào)文中的主題名。

在此,MQTT設(shè)備在訂閱主題后開(kāi)始發(fā)布消息,發(fā)布消息的PUBLISH報(bào)文中的主題名設(shè)置為{{設(shè)備擁有者的訪問(wèn)密匙}}/{{設(shè)備ID}}/DATA,回復(fù)控制消息的PUBLISH報(bào)文中的主題名設(shè)置為{{設(shè)備擁有者的訪問(wèn)密匙}}/{{設(shè)備ID}}/CREPLY,回復(fù)查詢消息的PUBLISH報(bào)文中的主題名設(shè)置為{{設(shè)備擁有者的訪問(wèn)密匙}}/{{設(shè)備ID}}/QREPLY,嘗試其他主題名將導(dǎo)致致命錯(cuò)誤,非法使用其他主題名進(jìn)行發(fā)布將導(dǎo)致服務(wù)端斷開(kāi)連接;其中,設(shè)備擁有者為MQTT設(shè)備擁有用戶,DATA為數(shù)據(jù)消息傳輸通道,CREPLY為控制回復(fù)消息傳輸通道,QREPLY為查詢回復(fù)消息傳輸通道。

優(yōu)選地,所述方法還包括:步驟S15,所述報(bào)文中的遺囑消息采用預(yù)設(shè)的MQTT設(shè)備消息字符串,所述遺囑消息的主題格式根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息和離線消息傳輸通道確定。在本申請(qǐng)一實(shí)施例中,需要對(duì)遺囑消息進(jìn)行規(guī)范,采用固定的WizIOT OFFLINE字符串,遺囑消息主題格式為{{設(shè)備擁有者的訪問(wèn)密匙}}/{{設(shè)備ID}}/OFFLINE,其中,WizIOT OFFLINE為設(shè)計(jì)的結(jié)果,主要區(qū)別于應(yīng)用程序APP的遺囑消息,OFFLINE為離線消息傳輸通道。

優(yōu)選地,所述客戶端包括應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備及所述MQTT設(shè)備擁有用戶時(shí),在步驟S11中,向所述服務(wù)端設(shè)備發(fā)送所述應(yīng)用程序、所述應(yīng)用程序開(kāi)發(fā)用戶、所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備擁有用戶及所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;接收所述服務(wù)端設(shè)備為所述應(yīng)用程序和所述MQTT設(shè)備分別分配的唯一標(biāo)識(shí)信息;基于所述訪問(wèn)密匙、加密密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息和所述應(yīng)用程序的唯一標(biāo)識(shí)信息將所述應(yīng)用程序的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備。在本申請(qǐng)一實(shí)施例中,服務(wù)端優(yōu)選為物聯(lián)網(wǎng)平臺(tái)后臺(tái),在后臺(tái)的管理界面中申請(qǐng)accessKey及secretKey,接著,在物聯(lián)網(wǎng)平臺(tái)后臺(tái)管理界面中為每個(gè)需要接入的APP終端獲取AppId,其中,accessKey用于MQTT協(xié)議中的CONNECT報(bào)文中的User Name字段(用戶名字段),AppId為應(yīng)用程序APP的唯一標(biāo)識(shí)符,用于MQTT協(xié)議中的CONNECT報(bào)文中的Payload(有效載荷)中的ClientId(客戶端標(biāo)識(shí)符)、Will Topic(遺囑主題)、Will Message(遺囑消息)、User Name(用戶名)字段進(jìn)行簽名。

在本申請(qǐng)一實(shí)施例中,在步驟S12中,基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證成功的接入認(rèn)證結(jié)果,所述應(yīng)用程序通過(guò)訂閱主題的過(guò)濾器向所述服務(wù)端發(fā)送所述訂閱主題認(rèn)證請(qǐng)求,其中,所述訂閱主題的過(guò)濾器根據(jù)以下至少任一種確定:根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制消息傳輸通道確定所述過(guò)濾器;根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定所述過(guò)濾器;根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的所述MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及數(shù)據(jù)消息傳輸通道確定所述過(guò)濾器;根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的所述MQTT設(shè)備的擁有用戶的訪問(wèn)密匙及所述MQTT設(shè)備的唯一標(biāo)識(shí)信息確定所述過(guò)濾器。

在此,APP終端僅具備訂閱所屬APP開(kāi)發(fā)者的被授權(quán)的MQTT設(shè)備的權(quán)力,接入認(rèn)證通過(guò)后,APP終端可以訂閱相關(guān)主題,訂閱主題使用{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/CREPLY或{{MQTT設(shè)備擁有者的acessKey}}/{{MQTT設(shè)備的deviceId}}/QREPLY或{{MQTT設(shè)備擁有者的acessKey}}/{{MQTT設(shè)備的deviceId}}/DATA或{{MQTT設(shè)備擁有者的acessKey}}/{{MQTT設(shè)備的deviceId}}+或{{MQTT設(shè)備擁有者的acessKey}}/{{MQTT設(shè)備的deviceId}}/#作為主題過(guò)濾器,嘗試訂閱其他任何主題將導(dǎo)致失敗,訂閱失敗后,服務(wù)端將在對(duì)應(yīng)字節(jié)設(shè)置0x80以示相關(guān)主題未訂閱成功。

優(yōu)選地,在步驟S13中,基于所述服務(wù)端設(shè)備反饋的訂閱成功的訂閱主題認(rèn)證請(qǐng)求結(jié)果,所述應(yīng)用程序授權(quán)的MQTT設(shè)備根據(jù)報(bào)文中確定的主題名將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備。在本申請(qǐng)一實(shí)施例中,所述報(bào)文中的主題名包括:發(fā)布控制消息的報(bào)文中的主題名和發(fā)布查詢消息的報(bào)文中的主題名,確定主題名的方法包括:根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制消息傳輸通道確定所述發(fā)布控制消息的報(bào)文中的主題名;根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定所述發(fā)布查詢消息的報(bào)文中的主題名。

在此,APP終端應(yīng)在訂閱主題后開(kāi)始發(fā)布消息,APP終端僅具備所屬APP開(kāi)發(fā)者的被授權(quán)的MQTT設(shè)備發(fā)布消息的權(quán)力,發(fā)布控制消息的PUBLISH報(bào)文中的主題名設(shè)置為{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/CONTROL,發(fā)布查詢消息的PUBLISH報(bào)文中的主題名設(shè)置為{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/QUERY,嘗試使用其他主題名將導(dǎo)致致命錯(cuò)誤,當(dāng)非法使用其他主題名進(jìn)行發(fā)布時(shí),將導(dǎo)致服務(wù)端斷開(kāi)連接。

優(yōu)選地,所述方法還包括:步驟S15’,所述報(bào)文中的遺囑消息采用預(yù)設(shè)的應(yīng)用程序消息字符串,所述遺囑消息的主題格式根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶的訪問(wèn)密匙、所述應(yīng)用程序的唯一標(biāo)識(shí)信息和離線消息傳輸通道確定。在本申請(qǐng)一實(shí)施例中,采用固定的WizIOT APP OFFLINE字符串,遺囑消息主題格式為{{APP開(kāi)發(fā)者的訪問(wèn)密匙}}/{{AppID}}/OFFLINE。

根據(jù)本申請(qǐng)另一方面,提供了一種在服務(wù)設(shè)備端基于MQTT的訪問(wèn)認(rèn)證的方法,所述方法包括:步驟S21~步驟S23,其中,在步驟S21中,基于所述MQTT的客戶端發(fā)送的接入認(rèn)證請(qǐng)求對(duì)所述客戶端進(jìn)行認(rèn)證,并向所述客戶端反饋接入認(rèn)證結(jié)果;在步驟S22中,基于所述客戶端發(fā)送的訂閱主題認(rèn)證請(qǐng)求判斷所述客戶端是否成功訂閱主題,并向所述客戶端反饋訂閱主題認(rèn)證請(qǐng)求結(jié)果;在步驟S23中,接收所述客戶端發(fā)布的消息認(rèn)證請(qǐng)求后,根據(jù)報(bào)文中的服務(wù)質(zhì)量確定發(fā)布消息認(rèn)證結(jié)果,并根據(jù)所述發(fā)布消息認(rèn)證結(jié)果確定與所述客戶端的連接。在本申請(qǐng)一實(shí)施例中,系統(tǒng)包括服務(wù)端和MQTT的客戶端,通過(guò)服務(wù)端對(duì)MQTT的客戶端進(jìn)行接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證以及對(duì)平臺(tái)中的MQTT設(shè)備、MQTT設(shè)備擁有者、APP和APP開(kāi)發(fā)者的管理功能,實(shí)現(xiàn)了MQTT的認(rèn)證擴(kuò)展和安全傳輸,減少了系統(tǒng)由于配置出錯(cuò)導(dǎo)致的錯(cuò)誤,并提供相應(yīng)的網(wǎng)頁(yè)界面使用戶可以更直觀的使用系統(tǒng)。

優(yōu)選地,在步驟S22中,接收所述客戶端發(fā)送的訂閱主題認(rèn)證請(qǐng)求;根據(jù)所述客戶端的標(biāo)識(shí)信息、遺囑主題、遺囑消息、用戶名字段、密碼字段判斷所述客戶端是否成功訂閱主題,若否,則在對(duì)應(yīng)字節(jié)設(shè)置未訂閱成功標(biāo)識(shí)。

如圖2示出的本申請(qǐng)一實(shí)施例中客戶端與服務(wù)端之間的訪問(wèn)認(rèn)證的交互示意圖。以MQTT設(shè)備為例進(jìn)行說(shuō)明設(shè)備的接入認(rèn)證、訂閱認(rèn)證及消息認(rèn)證,首先,數(shù)據(jù)服務(wù)總線組件中的MQTT設(shè)備進(jìn)行接入認(rèn)證,服務(wù)端的數(shù)據(jù)服務(wù)總線反饋認(rèn)證結(jié)果,其中,反饋認(rèn)證結(jié)果是根據(jù)接入的MQTT設(shè)備的ClientID(客戶端標(biāo)識(shí)符)、Will Topic(遺囑主題)、Will Message(遺囑消息)、User Name(用戶名)、Password(密碼)字段進(jìn)行判斷的,如果是合法的,則認(rèn)證成功,MQTT設(shè)備成功接入,進(jìn)而能夠通過(guò)MQTT與服務(wù)器進(jìn)行通信。對(duì)于接入認(rèn)證成功的MQTT設(shè)備,開(kāi)始訂閱相關(guān)主題,服務(wù)端根據(jù)訂閱主題判斷MQTT設(shè)備是否訂閱成功,若失敗則在對(duì)應(yīng)字節(jié)設(shè)置0x80。MQTT設(shè)備發(fā)布消息,服務(wù)端在接收到MQTT設(shè)備發(fā)布的消息后判斷所發(fā)布消息的主題名是否為預(yù)設(shè)要求的規(guī)范格式,若非法使用其他主題名,則斷開(kāi)與MQTT設(shè)備之間的連接,發(fā)布消息失敗。若使用主題名合法,則MQTT設(shè)備的消息成功發(fā)布,通過(guò)MQTT與服務(wù)器維持正常通信,對(duì)發(fā)布消息的確認(rèn)根據(jù)PUBLISH報(bào)文中的QOS(服務(wù)質(zhì)量)字段確定。

優(yōu)選地,所述客戶端包括MQTT設(shè)備和MQTT設(shè)備擁有用戶時(shí),在步驟S21中,接收所述MQTT設(shè)備擁有用戶發(fā)送的所述MQTT設(shè)備擁有用戶和所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;根據(jù)所述申請(qǐng)請(qǐng)求將所述MQTT設(shè)備添加至管理集群中,并為所述MQTT設(shè)備分配唯一標(biāo)識(shí)信息;接收所述MQTT設(shè)備基于所述訪問(wèn)密匙、加密密匙和所述唯一標(biāo)識(shí)信息發(fā)送的接入認(rèn)證請(qǐng)求。在本申請(qǐng)一實(shí)施例中,進(jìn)行MQTT設(shè)備的接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證時(shí),首先根據(jù)MQTT設(shè)備擁有者申請(qǐng)個(gè)人賬號(hào)及MQTT設(shè)備的訪問(wèn)密匙、加密密匙的申請(qǐng),給MQTT設(shè)備分配一個(gè)設(shè)備ID,以及為MQTT設(shè)備和MQTT設(shè)備的擁有者分別分配訪問(wèn)密匙和加密密匙,并將MQTT設(shè)備添加至管理集群中,其中,管理集群優(yōu)選為物聯(lián)網(wǎng)平臺(tái)管理界面。

優(yōu)選地,所述客戶端包括應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備及所述MQTT設(shè)備擁有用戶時(shí),在步驟S21中,接收所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備發(fā)送的所述應(yīng)用程序、所述應(yīng)用程序開(kāi)發(fā)用戶、所述MQTT設(shè)備擁有用戶及所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;根據(jù)所述申請(qǐng)請(qǐng)求將所述應(yīng)用程序添加至管理集群中,并為所述應(yīng)用程序和所述MQTT設(shè)備分別分配唯一標(biāo)識(shí)信息;接收所述應(yīng)用程序基于所述訪問(wèn)密匙、加密密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息和所述應(yīng)用程序的唯一標(biāo)識(shí)信息發(fā)送的接入認(rèn)證請(qǐng)求。在本申請(qǐng)一實(shí)施例中,進(jìn)行APP的接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證時(shí),首先根據(jù)APP終端的申請(qǐng),為APP終端分配應(yīng)用程序的唯一標(biāo)識(shí)信息(APPId),并為APP、APP的開(kāi)發(fā)者、APP開(kāi)發(fā)者授權(quán)的MQTT設(shè)備及MQTT設(shè)備的擁有者分別分配訪問(wèn)密匙和加密密匙,接收APP的接入認(rèn)證請(qǐng)求,完成APP的接入認(rèn)證。

本申請(qǐng)所述的基于MQTT的訪問(wèn)認(rèn)證的方法,實(shí)現(xiàn)了對(duì)MQTT客戶端的接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證及對(duì)物聯(lián)網(wǎng)平臺(tái)中的采集設(shè)備、采集設(shè)備擁有者、APP和APP開(kāi)發(fā)者的管理功能,并提供了安全套接層(SSL)和網(wǎng)絡(luò)通信(Websocket)支持,減少了系統(tǒng)由于配置出錯(cuò)導(dǎo)致的問(wèn)題,并提供了相應(yīng)的網(wǎng)頁(yè)界面使用戶可以更直觀的使用由MQTT客戶端與服務(wù)端確定的系統(tǒng)。

圖3示出根據(jù)本申請(qǐng)另一個(gè)方面的一種基于MQTT的訪問(wèn)認(rèn)證的客戶端的結(jié)構(gòu)示意圖,所述客戶端包括:接入認(rèn)證請(qǐng)求裝置11、訂閱主題認(rèn)證請(qǐng)求裝置12、發(fā)布消息認(rèn)證請(qǐng)求裝置13和確定連接裝置14,

接入認(rèn)證請(qǐng)求裝置11,用于將所述MQTT的客戶端的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備;在本申請(qǐng)實(shí)施例中,將MQTT客戶端進(jìn)行接入認(rèn)證,在此,接入認(rèn)證包括MQTT設(shè)備的接入認(rèn)證和應(yīng)用程序(APP)的接入認(rèn)證。針對(duì)MQTT設(shè)備和APP的接入認(rèn)證請(qǐng)求,有不同的接入認(rèn)證流程,實(shí)現(xiàn)對(duì)MQTT設(shè)備、MQTT設(shè)備擁有用戶、APP和APP開(kāi)發(fā)用戶的管理。

訂閱主題認(rèn)證請(qǐng)求裝置12,用于基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證結(jié)果向所述服務(wù)端設(shè)備發(fā)送訂閱主題認(rèn)證請(qǐng)求;在本申請(qǐng)實(shí)施例中,接入認(rèn)證通過(guò)后,MQTT的客戶端可以訂閱相關(guān)主題,訂閱主題時(shí)按照預(yù)設(shè)的主題格式進(jìn)行,若嘗試其他主題的格式則會(huì)導(dǎo)致錯(cuò)誤,訂閱失敗。

發(fā)布消息認(rèn)證請(qǐng)求裝置13,用于基于所述服務(wù)端設(shè)備反饋的訂閱主題認(rèn)證請(qǐng)求結(jié)果將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備;在本申請(qǐng)實(shí)施例中,當(dāng)訂閱主題成功后,MQTT的客戶端開(kāi)始發(fā)布消息,發(fā)布消息的PUBLISH(發(fā)布)報(bào)文、回復(fù)控制消息的PUBLISH(發(fā)布)報(bào)文及回復(fù)查詢消息的PUBLISH(發(fā)布)報(bào)文中的主題名需要按照預(yù)設(shè)的規(guī)則,若非法使用其他主題名進(jìn)行發(fā)布將導(dǎo)致服務(wù)端斷開(kāi)連接。

確定連接裝置14,用于基于所述服務(wù)端設(shè)備反饋的發(fā)布消息認(rèn)證結(jié)果與所述服務(wù)端設(shè)備確定連接。在此,當(dāng)發(fā)布消息認(rèn)證結(jié)果為成功,則保持客戶端與服務(wù)端的連接,可以繼續(xù)在客戶端與服務(wù)端之間進(jìn)行安全傳輸,當(dāng)發(fā)布消息認(rèn)證結(jié)果為失敗,則將斷開(kāi)與服務(wù)端之間的連接,保證消息傳輸?shù)臏?zhǔn)確性和安全性。

優(yōu)選地,當(dāng)所述客戶端包括MQTT設(shè)備和MQTT設(shè)備擁有用戶時(shí),接入認(rèn)證請(qǐng)求裝置11,用于向所述服務(wù)端設(shè)備發(fā)送所述MQTT設(shè)備擁有用戶及所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;接收所述服務(wù)端設(shè)備為所述MQTT設(shè)備分配的唯一標(biāo)識(shí)信息;基于所述訪問(wèn)密匙、加密密匙和所述唯一標(biāo)識(shí)信息將所述MQTT設(shè)備的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備。在此,首先申請(qǐng)MQTT設(shè)備擁有用戶owner賬號(hào),在管理界面中申請(qǐng)?jiān)L問(wèn)密匙(accessKey)和加密密匙(secretKey);接著,在管理界面中添加新的MQTT設(shè)備,為每個(gè)待接入的MQTT設(shè)備分配唯一標(biāo)識(shí)信息deviceId,其中,MQTT設(shè)備為智慧園區(qū)的采集設(shè)備,能夠接入到智慧園區(qū)的系統(tǒng)中;需要說(shuō)明的是,訪問(wèn)密匙(accessKey)用來(lái)訪問(wèn)系統(tǒng)提供的一些應(yīng)用程序的接口,用于MQTT協(xié)議中連接(CONNECT)報(bào)文中的user name字段(用戶名字段),deviceId用于MQTT協(xié)議中的CONNECT報(bào)文中的ClinetId字段(客戶端標(biāo)識(shí)符),secretKey用于對(duì)MQTT協(xié)議中的CONNECT報(bào)文中的Payload(有效載荷)中的ClinetId字段(客戶端標(biāo)識(shí)符)、Will Topic(遺囑主題)、Will Message(遺囑消息)、User Name(用戶名)字段進(jìn)行簽名,簽名用于MQTT協(xié)議中的CONNECT報(bào)文中的Password(密碼)字段。

需要說(shuō)明的是,Will Topic(遺囑主題)、Will Message(遺囑消息)是由客戶端預(yù)先定義的主題和對(duì)應(yīng)消息,附加在CONNECT報(bào)文的可變頭部中,在客戶端連接出現(xiàn)異常的情況下,由服務(wù)器主動(dòng)發(fā)布此消息。

優(yōu)選地,訂閱主題認(rèn)證請(qǐng)求裝置12,用于基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證成功的接入認(rèn)證結(jié)果,所述MQTT設(shè)備通過(guò)訂閱主題的過(guò)濾器向所述服務(wù)端發(fā)送所述訂閱主題認(rèn)證請(qǐng)求,其中,所述訂閱主題的過(guò)濾器根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、唯一標(biāo)識(shí)信息及控制消息傳輸通道確定,或根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定。在本申請(qǐng)一實(shí)施例中,訂閱主題時(shí)必須使用{{MQTT設(shè)備擁有用戶的訪問(wèn)密匙}}/{{MQTT設(shè)備ID}}/CONTROL,或{{MQTT設(shè)備擁有用戶的訪問(wèn)密匙}}/{{MQTT設(shè)備ID}}/QUERY作為主題過(guò)濾器,嘗試訂閱任何其他主題會(huì)導(dǎo)致失敗,當(dāng)訂閱失敗后,服務(wù)端將在對(duì)應(yīng)字節(jié)設(shè)置0x80以示相關(guān)主題未訂閱成功。其中,CONTROL為控制消息傳輸通道,QUERY為查詢消息傳輸通道。

優(yōu)選地,發(fā)布消息認(rèn)證請(qǐng)求裝置13,用于基于所述服務(wù)端設(shè)備反饋的訂閱成功的訂閱主題認(rèn)證請(qǐng)求結(jié)果,根據(jù)報(bào)文中確定的主題名將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備。在本申請(qǐng)一實(shí)施例中,所述報(bào)文中的主題名包括:發(fā)布消息的報(bào)文中的主題名、回復(fù)控制消息的報(bào)文中的主題名和回復(fù)查詢消息的報(bào)文中的主題名,優(yōu)選地,所述客戶端還包括:主題名確定裝置,用于根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及數(shù)據(jù)消息傳輸通道確定所述發(fā)布消息的報(bào)文中的主題名;根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制回復(fù)消息傳輸通道確定所述回復(fù)控制消息的報(bào)文中的主題名;根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢回復(fù)消息傳輸通道確定所述回復(fù)查詢消息的報(bào)文中的主題名。

在此,MQTT設(shè)備在訂閱主題后開(kāi)始發(fā)布消息,發(fā)布消息的PUBLISH報(bào)文中的主題名設(shè)置為{{設(shè)備擁有者的訪問(wèn)密匙}}/{{設(shè)備ID}}/DATA,回復(fù)控制消息的PUBLISH報(bào)文中的主題名設(shè)置為{{設(shè)備擁有者的訪問(wèn)密匙}}/{{設(shè)備ID}}/CREPLY,回復(fù)查詢消息的PUBLISH報(bào)文中的主題名設(shè)置為{{設(shè)備擁有者的訪問(wèn)密匙}}/{{設(shè)備ID}}/QREPLY,嘗試其他主題名將導(dǎo)致致命錯(cuò)誤,非法使用其他主題名進(jìn)行發(fā)布將導(dǎo)致服務(wù)端斷開(kāi)連接;其中,設(shè)備擁有者為MQTT設(shè)備擁有用戶,DATA為數(shù)據(jù)消息傳輸通道,CREPLY為控制回復(fù)消息傳輸通道,QREPLY為查詢回復(fù)消息傳輸通道。

優(yōu)選地,所述客戶端還包括:第一規(guī)范裝置15,用于所述報(bào)文中的遺囑消息采用預(yù)設(shè)的MQTT設(shè)備消息字符串,所述遺囑消息的主題格式根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息和離線消息傳輸通道確定。在本申請(qǐng)一實(shí)施例中,需要對(duì)遺囑消息進(jìn)行規(guī)范,采用固定的WizIOT OFFLINE字符串,遺囑消息主題格式為{{設(shè)備擁有者的訪問(wèn)密匙}}/{{設(shè)備ID}}/OFFLINE,其中,WizIOT OFFLINE為設(shè)計(jì)的結(jié)果,主要區(qū)別于應(yīng)用程序APP的遺囑消息,OFFLINE為離線消息傳輸通道。

優(yōu)選地,所述客戶端包括應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備及所述MQTT設(shè)備擁有用戶時(shí),接入認(rèn)證請(qǐng)求裝置11,用于向所述服務(wù)端設(shè)備發(fā)送所述應(yīng)用程序、所述應(yīng)用程序開(kāi)發(fā)用戶、所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備擁有用戶及所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;接收所述服務(wù)端設(shè)備為所述應(yīng)用程序和所述MQTT設(shè)備分別分配的唯一標(biāo)識(shí)信息;基于所述訪問(wèn)密匙、加密密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息和所述應(yīng)用程序的唯一標(biāo)識(shí)信息將所述應(yīng)用程序的接入認(rèn)證請(qǐng)求發(fā)送至服務(wù)端設(shè)備。在本申請(qǐng)一實(shí)施例中,服務(wù)端優(yōu)選為物聯(lián)網(wǎng)平臺(tái)后臺(tái),在后臺(tái)的管理界面中申請(qǐng)accessKey及secretKey,接著,在物聯(lián)網(wǎng)平臺(tái)后臺(tái)管理界面中為每個(gè)需要接入的APP終端獲取AppId,其中,acessKey用于MQTT協(xié)議中的CONNECT報(bào)文中的User Name字段(用戶名字段),AppId為應(yīng)用程序APP的唯一標(biāo)識(shí)符,用于MQTT協(xié)議中的CONNECT報(bào)文中的Payload(有效載荷)中的ClientId(客戶端標(biāo)識(shí)符)、Will Topic(遺囑主題)、Will Message(遺囑消息)、User Name(用戶名)字段進(jìn)行簽名。

在本申請(qǐng)一實(shí)施例中,訂閱主題認(rèn)證請(qǐng)求裝置12,用于基于所述服務(wù)端設(shè)備反饋的接入認(rèn)證成功的接入認(rèn)證結(jié)果,所述應(yīng)用程序通過(guò)訂閱主題的過(guò)濾器向所述服務(wù)端發(fā)送所述訂閱主題認(rèn)證請(qǐng)求,其中,所述訂閱主題的過(guò)濾器根據(jù)以下至少任一種確定:根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制消息傳輸通道確定所述過(guò)濾器;根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定所述過(guò)濾器;根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的所述MQTT設(shè)備的擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及數(shù)據(jù)消息傳輸通道確定所述過(guò)濾器;根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的所述MQTT設(shè)備的擁有用戶的訪問(wèn)密匙及所述MQTT設(shè)備的唯一標(biāo)識(shí)信息確定所述過(guò)濾器。

在此,APP終端僅具備訂閱所屬APP開(kāi)發(fā)者的被授權(quán)的MQTT設(shè)備的權(quán)力,接入認(rèn)證通過(guò)后,APP終端可以訂閱相關(guān)主題,訂閱主題使用{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/CREPLY或{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/QREPLY或{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/DATA或{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}+或{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/#作為主題過(guò)濾器,嘗試訂閱其他任何主題將導(dǎo)致失敗,訂閱失敗后,服務(wù)端將在對(duì)應(yīng)字節(jié)設(shè)置0x80以示相關(guān)主題未訂閱成功。

優(yōu)選地,發(fā)布消息認(rèn)證請(qǐng)求裝置13,用于基于所述服務(wù)端設(shè)備反饋的訂閱成功的訂閱主題認(rèn)證請(qǐng)求結(jié)果,所述應(yīng)用程序授權(quán)的MQTT設(shè)備根據(jù)報(bào)文中確定的主題名將發(fā)布消息認(rèn)證請(qǐng)求發(fā)送至所述服務(wù)端設(shè)備。在本申請(qǐng)一實(shí)施例中,所述報(bào)文中的主題名包括:發(fā)布控制消息的報(bào)文中的主題名和發(fā)布查詢消息的報(bào)文中的主題名,所述客戶端還包括主題名確定裝置,用于根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及控制消息傳輸通道確定所述發(fā)布控制消息的報(bào)文中的主題名;根據(jù)所述MQTT設(shè)備擁有用戶的訪問(wèn)密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息及查詢消息傳輸通道確定所述發(fā)布查詢消息的報(bào)文中的主題名。

在此,APP終端應(yīng)在訂閱主題后開(kāi)始發(fā)布消息,APP終端僅具備所屬APP開(kāi)發(fā)者的被授權(quán)的MQTT設(shè)備發(fā)布消息的權(quán)力,發(fā)布控制消息的PUBLISH報(bào)文中的主題名設(shè)置為{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/CONTROL,發(fā)布查詢消息的PUBLISH報(bào)文中的主題名設(shè)置為{{MQTT設(shè)備擁有者的accessKey}}/{{MQTT設(shè)備的deviceId}}/QUERY,嘗試使用其他主題名將導(dǎo)致致命錯(cuò)誤,當(dāng)非法使用其他主題名進(jìn)行發(fā)布時(shí),將導(dǎo)致服務(wù)端斷開(kāi)連接。

優(yōu)選地,所述客戶端還包括:第二規(guī)范裝置15’,用于所述報(bào)文中的遺囑消息采用預(yù)設(shè)的應(yīng)用程序消息字符串,所述遺囑消息的主題格式根據(jù)所述應(yīng)用程序開(kāi)發(fā)用戶的訪問(wèn)密匙、所述應(yīng)用程序的唯一標(biāo)識(shí)信息和離線消息傳輸通道確定。在本申請(qǐng)一實(shí)施例中,采用固定的WizIOT APP OFFLINE字符串,遺囑消息主題格式為{{APP開(kāi)發(fā)者的訪問(wèn)密匙}}/{{AppID}}/OFFLINE。

根據(jù)本申請(qǐng)另一方面,還提供了一種基于MQTT的訪問(wèn)認(rèn)證的服務(wù)設(shè)備,所述服務(wù)設(shè)備包括:接入認(rèn)證裝置21、主題認(rèn)證裝置22和消息認(rèn)證裝置23,其中,接入認(rèn)證裝置21,用于基于所述MQTT的客戶端發(fā)送的接入認(rèn)證請(qǐng)求對(duì)所述客戶端進(jìn)行認(rèn)證,并向所述客戶端反饋接入認(rèn)證結(jié)果;主題認(rèn)證裝置22,用于基于所述客戶端發(fā)送的訂閱主題認(rèn)證請(qǐng)求判斷所述客戶端是否成功訂閱主題,并向所述客戶端反饋訂閱主題認(rèn)證請(qǐng)求結(jié)果;消息認(rèn)證裝置23,用于接收所述客戶端發(fā)布的消息認(rèn)證請(qǐng)求后,根據(jù)報(bào)文中的服務(wù)質(zhì)量確定發(fā)布消息認(rèn)證結(jié)果,并根據(jù)所述發(fā)布消息認(rèn)證結(jié)果確定與所述客戶端的連接。在本申請(qǐng)一實(shí)施例中,系統(tǒng)包括服務(wù)端和MQTT的客戶端,通過(guò)服務(wù)端對(duì)MQTT的客戶端進(jìn)行接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證以及對(duì)平臺(tái)中的MQTT設(shè)備、MQTT設(shè)備擁有者、APP和APP開(kāi)發(fā)者的管理功能,實(shí)現(xiàn)了MQTT的認(rèn)證擴(kuò)展和安全傳輸,減少了系統(tǒng)由于配置出錯(cuò)導(dǎo)致的錯(cuò)誤,并提供相應(yīng)的網(wǎng)頁(yè)界面使用戶可以更直觀的使用系統(tǒng)。

優(yōu)選地,主題認(rèn)證裝置22,用于接收所述客戶端發(fā)送的訂閱主題認(rèn)證請(qǐng)求;根據(jù)所述客戶端的標(biāo)識(shí)信息、遺囑主題、遺囑消息、用戶名字段、密碼字段判斷所述客戶端是否成功訂閱主題,若否,則在對(duì)應(yīng)字節(jié)設(shè)置未訂閱成功標(biāo)識(shí)。

如圖2示出的本申請(qǐng)一實(shí)施例中客戶端與服務(wù)端之間的訪問(wèn)認(rèn)證的交互示意圖。以MQTT設(shè)備為例進(jìn)行說(shuō)明設(shè)備的接入認(rèn)證、訂閱認(rèn)證及消息認(rèn)證,首先,數(shù)據(jù)服務(wù)總線組件中的MQTT設(shè)備進(jìn)行接入認(rèn)證,服務(wù)端的數(shù)據(jù)服務(wù)總線反饋認(rèn)證結(jié)果,其中,反饋認(rèn)證結(jié)果是根據(jù)接入的MQTT設(shè)備的ClientID(客戶端標(biāo)識(shí)符)、Will Topic(遺囑主題)、Will Message(遺囑消息)、User Name(用戶名)、Password(密碼)字段進(jìn)行判斷的,如果是合法的,則認(rèn)證成功,MQTT設(shè)備成功接入,進(jìn)而能夠通過(guò)MQTT與服務(wù)器進(jìn)行通信。對(duì)于接入認(rèn)證成功的MQTT設(shè)備,開(kāi)始訂閱相關(guān)主題,服務(wù)端根據(jù)訂閱主題判斷MQTT設(shè)備是否訂閱成功,若失敗則在對(duì)應(yīng)字節(jié)設(shè)置0x80。MQTT設(shè)備發(fā)布消息,服務(wù)端在接收到MQTT設(shè)備發(fā)布的消息后判斷所發(fā)布消息的主題名是否為預(yù)設(shè)要求的規(guī)范格式,若非法使用其他主題名,則斷開(kāi)與MQTT設(shè)備之間的連接,發(fā)布消息失敗。若使用主題名合法,則MQTT設(shè)備的消息成功發(fā)布,通過(guò)MQTT與服務(wù)器維持正常通信,對(duì)發(fā)布消息的確認(rèn)根據(jù)PUBLISH報(bào)文中的QOS(服務(wù)質(zhì)量)字段確定。

優(yōu)選地,所述客戶端包括MQTT設(shè)備和MQTT設(shè)備擁有用戶時(shí),接入認(rèn)證裝置21,用于接收所述MQTT設(shè)備擁有用戶發(fā)送的所述MQTT設(shè)備擁有用戶和所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;根據(jù)所述申請(qǐng)請(qǐng)求將所述MQTT設(shè)備添加至管理集群中,并為所述MQTT設(shè)備分配唯一標(biāo)識(shí)信息;接收所述MQTT設(shè)備基于所述訪問(wèn)密匙、加密密匙和所述唯一標(biāo)識(shí)信息發(fā)送的接入認(rèn)證請(qǐng)求。在本申請(qǐng)一實(shí)施例中,進(jìn)行MQTT設(shè)備的接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證時(shí),首先根據(jù)MQTT設(shè)備擁有者申請(qǐng)個(gè)人賬號(hào)及MQTT設(shè)備的訪問(wèn)密匙、加密密匙的申請(qǐng),給MQTT設(shè)備分配一個(gè)設(shè)備ID,以及為MQTT設(shè)備和MQTT設(shè)備的擁有者分別分配訪問(wèn)密匙和加密密匙,并將MQTT設(shè)備添加至管理集群中,其中,管理集群優(yōu)選為物聯(lián)網(wǎng)平臺(tái)管理界面。

優(yōu)選地,所述客戶端包括應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備及所述MQTT設(shè)備擁有用戶時(shí),接入認(rèn)證裝置21,用于接收所述應(yīng)用程序開(kāi)發(fā)用戶授權(quán)的MQTT設(shè)備發(fā)送的所述應(yīng)用程序、所述應(yīng)用程序開(kāi)發(fā)用戶、所述MQTT設(shè)備擁有用戶及所述MQTT設(shè)備的訪問(wèn)密匙和加密密匙的申請(qǐng)請(qǐng)求;根據(jù)所述申請(qǐng)請(qǐng)求將所述應(yīng)用程序添加至管理集群中,并為所述應(yīng)用程序和所述MQTT設(shè)備分別分配唯一標(biāo)識(shí)信息;接收所述應(yīng)用程序基于所述訪問(wèn)密匙、加密密匙、所述MQTT設(shè)備的唯一標(biāo)識(shí)信息和所述應(yīng)用程序的唯一標(biāo)識(shí)信息發(fā)送的接入認(rèn)證請(qǐng)求。在本申請(qǐng)一實(shí)施例中,進(jìn)行APP的接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證時(shí),首先根據(jù)APP終端的申請(qǐng),為APP終端分配應(yīng)用程序的唯一標(biāo)識(shí)信息(APPId),并為APP、APP的開(kāi)發(fā)者、APP開(kāi)發(fā)者授權(quán)的MQTT設(shè)備及MQTT設(shè)備的擁有者分別分配訪問(wèn)密匙和加密密匙,接收APP的接入認(rèn)證請(qǐng)求,完成APP的接入認(rèn)證。

本申請(qǐng)所述的基于MQTT的訪問(wèn)認(rèn)證的方法,實(shí)現(xiàn)了對(duì)MQTT客戶端的接入認(rèn)證、訂閱認(rèn)證、消息認(rèn)證及對(duì)物聯(lián)網(wǎng)平臺(tái)中的采集設(shè)備、采集設(shè)備擁有者、APP和APP開(kāi)發(fā)者的管理功能,并提供了安全套接層(SSL)和網(wǎng)絡(luò)通信(Websocket)支持,減少了系統(tǒng)由于配置出錯(cuò)導(dǎo)致的問(wèn)題,并提供了相應(yīng)的網(wǎng)頁(yè)界面使用戶可以更直觀的使用由MQTT客戶端與服務(wù)端確定的系統(tǒng)。

顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的精神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。

需要注意的是,本申請(qǐng)可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,可采用專(zhuān)用集成電路(ASIC)、通用目的計(jì)算機(jī)或任何其他類(lèi)似硬件設(shè)備來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,本申請(qǐng)的軟件程序可以通過(guò)處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本申請(qǐng)的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲(chǔ)到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,RAM存儲(chǔ)器,磁或光驅(qū)動(dòng)器或軟磁盤(pán)及類(lèi)似設(shè)備。另外,本申請(qǐng)的一些步驟或功能可采用硬件來(lái)實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。

另外,本申請(qǐng)的一部分可被應(yīng)用為計(jì)算機(jī)程序產(chǎn)品,例如計(jì)算機(jī)程序指令,當(dāng)其被計(jì)算機(jī)執(zhí)行時(shí),通過(guò)該計(jì)算機(jī)的操作,可以調(diào)用或提供根據(jù)本申請(qǐng)的方法和/或技術(shù)方案。而調(diào)用本申請(qǐng)的方法的程序指令,可能被存儲(chǔ)在固定的或可移動(dòng)的記錄介質(zhì)中,和/或通過(guò)廣播或其他信號(hào)承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲(chǔ)在根據(jù)所述程序指令運(yùn)行的計(jì)算機(jī)設(shè)備的工作存儲(chǔ)器中。在此,根據(jù)本申請(qǐng)的一個(gè)實(shí)施例包括一個(gè)裝置,該裝置包括用于存儲(chǔ)計(jì)算機(jī)程序指令的存儲(chǔ)器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計(jì)算機(jī)程序指令被該處理器執(zhí)行時(shí),觸發(fā)該裝置運(yùn)行基于前述根據(jù)本申請(qǐng)的多個(gè)實(shí)施例的方法和/或技術(shù)方案。

對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本申請(qǐng)不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本申請(qǐng)的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本申請(qǐng)。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本申請(qǐng)的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請(qǐng)內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱(chēng),而并不表示任何特定的順序。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1