本文作者:kaifamei

支持數據處理的MQTT通訊協議方法、設備和存儲裝置與流程

更新時間:2025-12-25 19:04:49 0條評論

支持數據處理的MQTT通訊協議方法、設備和存儲裝置與流程


支持數據處理的mqtt通訊協議方法、設備和存儲裝置
技術領域
1.本發明涉及數據通訊技術領域,特別涉及一種支持數據處理的mqtt通訊協議方法、設備和存儲裝置。


背景技術:



2.mqtt(message queuing telemetry transport,消息隊列遙測傳輸協議),是一種基于發布/訂閱(publish/subscribe)模式的輕量級協議。該協議構建于tcp/ip協議之上,mqtt最大優點在于,可以以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時通訊協議,使其在物聯網、小型設備、移動應用等方面有較廣泛的應用。
3.mqtt支持三種消息發布服務質量:"至多一次",消息發布完全依賴底層tcp/ip網絡,會發生消息丟失或重復。這一級別可用于如下情況,環境傳感器數據,丟失一次數據記錄不會造成數據丟失,因為不久后還會有第二次發送。這一種方式主要普通app的推送,倘若智能設備在消息推送時未聯網,推送過去沒收到,再次聯網也就收不到了。"至少一次",確保消息到達,但消息重復可能會發生。"只有一次",確保消息到達一次。在一些要求比較嚴格的計費系統中,可以使用此級別。在計費系統中,消息重復或丟失會導致不正確的結果。這種最高質量的消息發布服務還可以用于即時通訊類的app的推送,確保用戶收到且只會收到一次。
4.由于mqtt通訊協議構建于tcp/ip協議之上,因此沿用了以報文的方式進行消息傳輸;mqtt報文的構成:固定報頭、可變報頭和有效載荷;
5.表1固定報頭:每個報文都具備
[0006][0007]
表2可變報頭:部分報文具備
[0008]
[0009][0010]
有效載荷(部分報文包含):一般都是長度+具體信息的十六進制表示;其最大長度受固定報頭中剩余長度4個字節的限制(即一次攜帶信息的最大信息量為4個字節:256mb);不同報文攜帶不同有效載荷,例如connect報文則是:用戶id長度+用戶id+用戶名長度+用戶名+用戶密碼長度+用戶密碼。
[0011]
表3mqtt通訊協議中現有的控制報文
[0012]
[0013][0014]
表4現有mqtt通訊協議中,針對可變報文及有效載荷的規定
[0015][0016]
下面以一個具體實例進行說明:
[0017][0018]
[0019]
publish報文展示(16進制表示形式):
[0020]
mqtt控制報文類型:30
[0021]
剩余長度:11
[0022]
主題長度:00 04
[0023]
主題詳細內容:74 65 73 74
[0024]
攜帶有效信息:68 65 6c 6c 6f 20 77 6f 72 6c 64
[0025]
整體報文:30 11 00 04 74 65 73 74 68 65 6c 6c 6f 20 77 6f 72 6c 64
[0026]
隨著物聯網技術的不斷發展,mqtt通訊協議的應用也越來越廣泛;原有的mqtt通訊協議僅能滿足物聯網中數據原樣的轉發服務,無法滿足一些需要支持數據處理及數據轉發的個性化應用場景。
[0027]
基于此,本發明提出了一種支持數據處理的mqtt通訊協議方法、設備和存儲裝置。


技術實現要素:



[0028]
本發明為了彌補現有技術的缺陷,提供了一種簡單高效的支持數據處理的mqtt通訊協議方法、設備和存儲裝置。
[0029]
本發明是通過如下技術方案實現的:
[0030]
一種支持數據處理的mqtt通訊協議方法,其特征在于:mqtt broker角新增數據處理功能,并通過新增反饋控制報文將數據處理結果反饋給mqtt發布者角;
[0031]
所述mqtt broker角在具備現有mqtt通訊協議的基礎功能外,新增數據處理模塊,所述數據處理模塊用于實現臟數據過濾、數據轉換和反饋功能;
[0032]
在mqtt broker底層實現代碼中新增數據處理包,采用模塊化整合的處理方式,用戶導入數據處理配置文件;mqtt broker角根據用戶配置的數據處理文件決定是否開啟相關數據處理功能;若不開啟數據處理功能,則為現有mqtt通訊協議;若開啟數據處理功能,則自定義配置臟數據過濾規則及相應數據轉換規則;
[0033]
mqtt broker角在完成數據處理后,利用mqtt的數據轉發功能,將處理后的數據轉發給mqtt訂閱者角;同時通過新增反饋報文feedback將數據處理的結果反饋給mqtt發布者角,mqtt發布者角收到反饋信息后對臟數據進行調整,并重新進行數據上報。
[0034]
所述mqtt發布者角,部署在mqtt客戶端,為物聯網中路由器,其下連接智能邊緣設備,采集智能邊緣設備相關數據,作為mqtt數據傳輸的原始數據進行上報;
[0035]
所述mqtt訂閱者角部署在mqtt客戶端,通過訂閱與mqtt發布者約定的主題topic接收從mqtt broker轉發的數據。
[0036]
所述反饋報文feedback的構成包括固定報文頭部和有效載荷,報文展示為f0+剩余長度+有效載荷;同時新增一個反饋標志位,以決定發布者是否接收反饋報文。
[0037]
包括如下步驟:
[0038]
步驟s01、mqtt客戶端連接服務器
[0039]
安裝mqtt客戶端的發布者與mqtt broker建立網絡連接后,發布connect報文請求與服務器建立連接;
[0040]
在同一個網絡連接中,客戶端只能發送一次connect報文,如果出現第二個connect報文,按照協議標準,服務器將第二個connect報文當作協議違規處理并斷開客戶
端的連接;對于正常的連接請求,服務器必須產生應答報文connack,如果無法建立會話,服務器則在應答報文中報告對應的錯誤代碼;
[0041]
在客戶端與服務器成功建立連接后,為了維持連接,按照connect報文中keep alive設置的時間值t秒,每隔t秒客戶端向服務器發送一個心跳請求報文pingreq;同樣服務器端接收客戶端心跳請求時回復一個心跳響應報文pingresp;
[0042]
步驟s02、mqtt訂閱主題
[0043]
mqtt訂閱者在安裝mqtt客戶端后,向服務器發送subscribe報文用于創建一個或多個訂閱,subscribe報文中包含訂閱主題及服務器向客戶端發送應用消息所允許的最大服務質量qos等級:0、1或2;服務器端收到subscribe報文后,回復suback確認報文;同時在服務器中,記錄每個客戶關注的一個或者多個主題,當服務器收到這些主題的publish報文時,將分發應用消息到與之匹配的客戶端;
[0044]
步驟s03、mqtt發布主題
[0045]
mqtt發布者在安裝mqtt客戶端后,向服務器發送publish報文用于數據上報,publish報文包含固定報文頭、有效載荷和消息服務質量qos等級:0、1或2;根據消息服務質量等級與用戶是否開啟數據處理功能進行消息傳輸;
[0046]
步驟s04、mqtt主題轉發
[0047]
首先在現有的mqtt服務器(broker)底層采用基礎功能模塊整合原有的功能,接收來自客戶端的網絡連接,并處理客戶端的消息訂閱和消息發布請求,同時把mqtt發布者發布的消息轉發給消息訂閱客戶端,并新加入數據處理功能;
[0048]
步驟s05、當mqtt broker接收mqtt發布者上傳的數據后,根據用戶導入的數據處理配置文檔,決定是否開啟數據處理功能;
[0049]
若不開啟數據處理功能,則為現有的mqtt通訊協議,按照publish報文中qos值進行相應的消息傳輸;
[0050]
步驟s06、若開啟數據處理功能,則用戶自定義配置數據處理規則,包括臟數據過濾規則和數據轉換規則,并根據數據處理規則對從mqtt發布者接收的數據進行處理,調用mqtt通訊協議將正常數據轉發到消息訂閱客戶端;
[0051]
步驟s07、mqtt取消訂閱主題,安裝mqtt客戶端的訂閱者向服務器發送unsubscribe報文,用于取消訂閱主題;
[0052]
步驟s08、mqtt斷開連接
[0053]
mqtt客戶端向服務器發送disconnect報文,表示客戶端正常斷開連接。
[0054]
所述步驟s03中,若用戶開啟了數據處理功能,服務器根據publish報文是否接收反饋標志位,決定是否將數據處理后的信息通過反饋報文feedback反饋給mqtt發布者;若接收到反饋標志位則發回反饋信息,否則不反饋。
[0055]
所述步驟s06中,首先,mqtt broker根據用戶配置的臟數據過濾規則對從mqtt發布者接收的數據進行處理,將過濾出的臟數據反饋報文feedback方式通知mqtt發布者,提供信息反饋的功能;其次,針對過濾出的正常數據,根據用戶配置的數據轉換規則對其進行數據轉換;最后,調用mqtt通訊協議,將按照用戶配置的數據轉換規則轉化的數據,轉發到消息訂閱客戶端。
[0056]
所述unsubscribe報文中包含取消訂閱的主題信息。
[0057]
一種設備,其特征在于:包括存儲器和處理器;所述存儲器用于存儲計算機程序,所述處理器用于執行所述計算機程序時實現上述的方法步驟。
[0058]
一種可讀存儲介質,其特征在于:所述可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現上述的方法步驟。
[0059]
本發明的有益效果是:該支持數據處理的mqtt通訊協議方法、設備和存儲裝置,不僅能夠避免每個mqtt訂閱者做重復的數據處理工作,還能避免臟數據在整個mqtt傳輸過程的時間消耗,將臟數據及時反饋給發布者,從而能夠以有限的帶寬為連接遠程設備提供數據處理服務及實時可靠的數據傳輸服務,有效滿足用戶的個性化mqtt應用場景需求。
附圖說明
[0060]
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0061]
附圖1為現有mqtt通訊協議的流程圖
[0062]
附圖2為本發明一種支持數據處理的mqtt通訊協議流程圖
[0063]
附圖3為本發明針對現有mqtt通訊協議的新增數據處理模塊的具體流程圖
[0064]
附圖4為本發明一種支持數據處理的mqtt通訊協議具體工作流程圖
具體實施方式
[0065]
為了使本技術領域的人員更好的理解本發明中的技術方案,下面將結合本發明實施例,對本發明實施例中的技術方案進行清楚,完整的描述。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例?;诒景l明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
[0066]
該支持數據處理的mqtt通訊協議方法,mqtt broker角新增數據處理功能,并通過新增反饋控制報文將數據處理結果反饋給mqtt發布者角;
[0067]
所述mqtt broker角在具備現有mqtt通訊協議的基礎功能(接收來自客戶端的網絡連接,并處理客戶端的消息訂閱和消息發布請求,同時把mqtt發布者發布的消息轉發給消息訂閱客戶端)外,新增數據處理模塊,所述數據處理模塊用于實現臟數據過濾、數據轉換和反饋功能;
[0068]
在mqtt broker底層實現代碼中新增數據處理包,采用模塊化整合的處理方式,用戶導入數據處理配置文件;mqtt broker角根據用戶配置的數據處理文件決定是否開啟相關數據處理(臟數據過濾、數據轉換)功能;若不開啟數據處理功能,則為現有mqtt通訊協議;若開啟數據處理功能,則自定義配置臟數據過濾規則及相應數據轉換規則;
[0069]
mqtt broker角在完成數據處理后,利用mqtt的數據轉發功能,將處理后的數據轉發給mqtt訂閱者角;同時通過新增反饋報文feedback將數據處理的結果反饋給mqtt發布者角,mqtt發布者角收到反饋信息后對臟數據進行調整,并重新進行數據上報。
[0070]
所述反饋報文feedback參照publish報文的構成,包括固定報文頭部和有效載荷;具體數值采用表3mqtt通訊協議中現有的控制報文中預留字段(reserved):15,則反饋報文
feedback的報文展示為:f0+剩余長度+有效載荷;同時對現有的發布報文publish新增一個標志位:決定發布者是否接收反饋報文(修改后發布報文格式:固定報頭+是否接收反饋標志+有效負荷)。
[0071]
所述mqtt發布者角,部署在mqtt客戶端,為物聯網中具備特定功能的路由器,其下連接智能邊緣設備,如智能傳感器、智能汽車、智能充電樁、智能光伏設備、智能廚具等;采集智能邊緣設備相關數據,作為mqtt數據傳輸的原始數據進行上報;
[0072]
所述mqtt訂閱者角部署在mqtt客戶端,通過訂閱與mqtt發布者約定的主題topic接收從mqtt broker轉發的數據。
[0073]
mqtt broker轉發的數據一般為物聯網中某個系統的數據輸入模塊,其上連一些數據處理平臺系統,如數字化能源管理平臺等。
[0074]
包括如下步驟:
[0075]
步驟s01、mqtt客戶端連接服務器
[0076]
安裝mqtt客戶端的發布者與mqtt broker建立網絡連接后,發布connect報文請求與服務器建立連接;
[0077]
在同一個網絡連接中,客戶端只能發送一次connect報文,如果出現第二個connect報文,按照協議標準,服務器將第二個connect報文當作協議違規處理并斷開客戶端的連接;對于正常的連接請求,服務器必須產生應答報文connack,如果無法建立會話,服務器則在應答報文中報告對應的錯誤代碼;
[0078]
在客戶端與服務器成功建立連接后,為了維持連接,按照connect報文中keep alive設置的時間值t秒,每隔t秒客戶端向服務器發送一個心跳請求報文pingreq;同樣服務器端接收客戶端心跳請求時回復一個心跳響應報文pingresp;
[0079]
步驟s02、mqtt訂閱主題
[0080]
mqtt訂閱者在安裝mqtt客戶端后,向服務器發送subscribe報文用于創建一個或多個訂閱,subscribe報文中包含訂閱主題及服務器向客戶端發送應用消息所允許的最大服務質量qos等級:0、1或2;服務器端收到subscribe報文后,回復suback確認報文;同時在服務器中,記錄每個客戶關注的一個或者多個主題,當服務器收到這些主題的publish報文時,將分發應用消息到與之匹配的客戶端;
[0081]
步驟s03、mqtt發布主題
[0082]
mqtt發布者在安裝mqtt客戶端后,向服務器發送publish報文用于數據上報,publish報文包含固定報文頭、有效載荷(主題名稱及上報數據集)和消息服務質量qos等級:0、1或2;根據消息服務質量等級與用戶是否開啟數據處理功能進行消息傳輸;
[0083]
步驟s04、mqtt主題轉發
[0084]
首先在現有的mqtt服務器(broker)底層采用基礎功能模塊整合原有的功能,接收來自客戶端的網絡連接,并處理客戶端的消息訂閱和消息發布請求,同時把mqtt發布者發布的消息轉發給消息訂閱客戶端,并新加入數據處理功能;
[0085]
步驟s05、當mqtt broker接收mqtt發布者上傳的數據后,根據用戶導入的數據處理配置文檔,決定是否開啟數據處理功能;
[0086]
若不開啟數據處理功能,則為現有的mqtt通訊協議,按照publish報文中qos值進行相應的消息傳輸;
[0087]
步驟s06、若開啟數據處理功能,則用戶自定義配置數據處理規則,包括臟數據過濾規則和數據轉換規則,并根據數據處理規則對從mqtt發布者接收的數據進行處理,調用mqtt通訊協議將正常數據轉發到消息訂閱客戶端;
[0088]
步驟s07、mqtt取消訂閱主題,安裝mqtt客戶端的訂閱者向服務器發送unsubscribe報文,用于取消訂閱主題;
[0089]
步驟s08、mqtt斷開連接
[0090]
mqtt客戶端(發布者/訂閱者)向服務器發送disconnect報文,表示客戶端正常斷開連接。
[0091]
所述步驟s03中,若用戶開啟了數據處理功能,服務器根據publish報文是否接收反饋標志位,決定是否將數據處理后的信息通過反饋報文feedback反饋給mqtt發布者;若接收到反饋標志位則發回反饋信息,否則不反饋。
[0092]
消息服務質量qos等級為0的publish控制報文進行消息傳輸的過程如下:
[0093]
i:如附圖1所示,現有的mqtt通訊協議中針對qos0的publish報文;服務器不會發送響應,發布者也不會重試,它在發出這個消息的時候就立馬將消息丟棄,這個消息可能送達一次也可能根本沒送達;
[0094]
ii:如附圖2所示,若用戶開啟了數據處理功能,服務器根據publish報文是否接收反饋標志位,決定是否將數據處理后的信息通過feedback報文反饋給mqtt發布者。
[0095]
消息服務質量qos等級為1的publish控制報文進行消息傳輸的過程如下:
[0096]
i:如附圖1所示,現有的mqtt通訊協議中針對qos1的publish報文;服務器會對該報文回復一個puback發布確認報文,mqtt發布者接收到服務器回復的puback發布確認報文后,才刪除該消息
[0097]
ii:如附圖2所示,若用戶開啟了數據處理功能,服務器在給出puback報文發布確認后,根據publish報文是否接收反饋標志位,決定是否將數據處理后的信息通過feedback報文反饋給mqtt發布者。
[0098]
消息服務質量qos等級為2的publish控制報文進行消息傳輸的過程如下:
[0099]
i:如附圖1所示,現有的mqtt通訊協議中針對qos2的publish報文;mqtt發布者在向服務器發送該publish報文之前,會在本地存儲該消息;服務器在接收到publish報文后,會回復一下pubrec報文,表示已經收到該消息;mqtt發布者在接收到pubrec報文后,會發送一個pubrel釋放報文,服務器接收到pubrel釋放報文后,回復一個pubcom完成報文,mqtt發布者接收到完成報文pubcom后,才刪除該消息表示本次發布行為結束。
[0100]
ii:如附圖2所示,若用戶開啟了數據處理功能,mqtt發布者在向服務器發送publish報文之前在本地存儲該消息;服務器在接收到publish報文后,通過回復pubrec報文表示已經收到該消息;mqtt發布者在接收到回復的pubrec報文后,發送一個pubrel釋放報文;服務器接收到pubrel釋放報文后,回復pubcom完成報文,mqtt發布者在接收到完成報文pubcom后刪除該消息;服務器根據publish報文是否接收反饋標志位,決定是否將數據處理后的信息通過feedback報文反饋給mqtt發布者。
[0101]
所述步驟s06中,首先,mqtt broker根據用戶配置的臟數據過濾規則對從mqtt發布者接收的數據進行處理,將過濾出的臟數據反饋報文feedback方式通知mqtt發布者,提供信息反饋的功能;其次,針對過濾出的正常數據,根據用戶配置的數據轉換規則對其進行
數據轉換;最后,調用mqtt通訊協議,將按照用戶配置的數據轉換規則轉化的數據,轉發到消息訂閱客戶端。
[0102]
所述unsubscribe報文中包含取消訂閱的主題信息。
[0103]
實施例1:
[0104][0105]
修改后publish報文展示(16進制表示形式):
[0106]
mqtt控制報文類型:30
[0107]
剩余長度:12
[0108]
是否接收反饋標志(00表示接收,01表示不接受):00
[0109]
主題長度:00 04
[0110]
主題詳細內容:74 65 73 74
[0111]
攜帶有效信息:68 65 6c 6c 6f 20 77 6f 72 6c 64
[0112]
整體報文:30 12 00 00 04 74 65 73 74 68 65 6c 6c 6f 20 77 6f 72 6c 64
[0113][0114][0115]
mqtt控制報文類型:f0
[0116]
剩余長度:11
[0117]
主題長度:00 04
[0118]
主題詳細內容:74 65 73 74
[0119]
攜帶有效信息:68 65 6c 6c 6f 20 77 6f 72 6c 64
[0120]
整體報文:f0 11 00 04 74 65 73 74 68 65 6c 6c 6f 20 77 6f 72 6c 64
[0121]
該設備包括存儲器和處理器;所述存儲器用于存儲計算機程序,所述處理器用于執行所述計算機程序時實現上述的方法步驟。
[0122]
該可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現上述的方法步驟。
[0123]
以上所述的實施例,只是本發明具體實施方式的一種,本領域的技術人員在本發明技術方案范圍內進行的通常變化和替換都應包含在本發明的保護范圍內。

技術特征:


1.一種支持數據處理的mqtt通訊協議方法,其特征在于:mqtt broker角新增數據處理功能,并通過新增反饋控制報文將數據處理結果反饋給mqtt發布者角;所述mqtt broker角在具備現有mqtt通訊協議的基礎功能外,新增數據處理模塊,所述數據處理模塊用于實現臟數據過濾、數據轉換和反饋功能;在mqtt broker底層實現代碼中新增數據處理包,采用模塊化整合的處理方式,用戶導入數據處理配置文件;mqtt broker角根據用戶配置的數據處理文件決定是否開啟相關數據處理功能;若不開啟數據處理功能,則為現有mqtt通訊協議;若開啟數據處理功能,則自定義配置臟數據過濾規則及相應數據轉換規則;mqtt broker角在完成數據處理后,利用mqtt的數據轉發功能,將處理后的數據轉發給mqtt訂閱者角;同時通過新增反饋報文feedback將數據處理的結果反饋給mqtt發布者角,mqtt發布者角收到反饋信息后對臟數據進行調整,并重新進行數據上報。2.根據權利要求1所述的支持數據處理的mqtt通訊協議方法,其特征在于:所述mqtt發布者角,部署在mqtt客戶端,為物聯網中路由器,其下連接智能邊緣設備,采集智能邊緣設備相關數據,作為mqtt數據傳輸的原始數據進行上報;所述mqtt訂閱者角部署在mqtt客戶端,通過訂閱與mqtt發布者約定的主題topic接收從mqtt broker轉發的數據。3.根據權利要求1所述的支持數據處理的mqtt通訊協議方法,其特征在于:所述反饋報文feedback的構成包括固定報文頭部和有效載荷,報文展示為f0+剩余長度+有效載荷;同時新增一個反饋標志位,以決定發布者是否接收反饋報文。4.根據權利要求1~3任意一項所述的支持數據處理的mqtt通訊協議方法,其特征在于:包括如下步驟:步驟s01、mqtt客戶端連接服務器安裝mqtt客戶端的發布者與mqtt broker建立網絡連接后,發布connect報文請求與服務器建立連接;在同一個網絡連接中,客戶端只能發送一次connect報文,如果出現第二個connect報文,按照協議標準,服務器將第二個connect報文當作協議違規處理并斷開客戶端的連接;對于正常的連接請求,服務器必須產生應答報文connack,如果無法建立會話,服務器則在應答報文中報告對應的錯誤代碼;在客戶端與服務器成功建立連接后,為了維持連接,按照connect報文中keep alive設置的時間值t秒,每隔t秒客戶端向服務器發送一個心跳請求報文pingreq;同樣服務器端接收客戶端心跳請求時回復一個心跳響應報文pingresp;步驟s02、mqtt訂閱主題mqtt訂閱者在安裝mqtt客戶端后,向服務器發送subscribe報文用于創建一個或多個訂閱,subscribe報文中包含訂閱主題及服務器向客戶端發送應用消息所允許的最大服務質量qos等級:0、1或2;服務器端收到subscribe報文后,回復suback確認報文;同時在服務器中,記錄每個客戶關注的一個或者多個主題,當服務器收到這些主題的publish報文時,將分發應用消息到與之匹配的客戶端;步驟s03、mqtt發布主題mqtt發布者在安裝mqtt客戶端后,向服務器發送publish報文用于數據上報,publish
報文包含固定報文頭、有效載荷和消息服務質量qos等級:0、1或2;根據消息服務質量等級與用戶是否開啟數據處理功能進行消息傳輸;步驟s04、mqtt主題轉發首先在現有的mqtt服務器(broker)底層采用基礎功能模塊整合原有的功能,接收來自客戶端的網絡連接,并處理客戶端的消息訂閱和消息發布請求,同時把mqtt發布者發布的消息轉發給消息訂閱客戶端,并新加入數據處理功能;步驟s05、當mqtt broker接收mqtt發布者上傳的數據后,根據用戶導入的數據處理配置文檔,決定是否開啟數據處理功能;若不開啟數據處理功能,則為現有的mqtt通訊協議,按照publish報文中qos值進行相應的消息傳輸;步驟s06、若開啟數據處理功能,則用戶自定義配置數據處理規則,包括臟數據過濾規則和數據轉換規則,并根據數據處理規則對從mqtt發布者接收的數據進行處理,調用mqtt通訊協議將正常數據轉發到消息訂閱客戶端;步驟s07、mqtt取消訂閱主題,安裝mqtt客戶端的訂閱者向服務器發送unsubscribe報文,用于取消訂閱主題;步驟s08、mqtt斷開連接mqtt客戶端向服務器發送disconnect報文,表示客戶端正常斷開連接。5.根據權利要求4所述的支持數據處理的mqtt通訊協議方法,其特征在于:所述步驟s03中,若用戶開啟了數據處理功能,服務器根據publish報文是否接收反饋標志位,決定是否將數據處理后的信息通過反饋報文feedback反饋給mqtt發布者;若接收到反饋標志位則發回反饋信息,否則不反饋。6.根據權利要求4所述的支持數據處理的mqtt通訊協議方法,其特征在于:所述步驟s06中,首先,mqtt broker根據用戶配置的臟數據過濾規則對從mqtt發布者接收的數據進行處理,將過濾出的臟數據反饋報文feedback方式通知mqtt發布者,提供信息反饋的功能;其次,針對過濾出的正常數據,根據用戶配置的數據轉換規則對其進行數據轉換;最后,調用mqtt通訊協議,將按照用戶配置的數據轉換規則轉化的數據,轉發到消息訂閱客戶端。7.根據權利要求4所述的支持數據處理的mqtt通訊協議方法,其特征在于:所述unsubscribe報文中包含取消訂閱的主題信息。8.一種設備,其特征在于:包括存儲器和處理器;所述存儲器用于存儲計算機程序,所述處理器用于執行所述計算機程序時實現如權利要求1至7任意一項所述的方法步驟。9.一種可讀存儲介質,其特征在于:所述可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如權利要求1至7任意一項所述的方法步驟。

技術總結


本發明特別涉及一種支持數據處理的MQTT通訊協議方法、設備和存儲裝置。該支持數據處理的MQTT通訊協議方法、設備和存儲裝置,MQTT Broker角新增數據處理模塊,并通過新增反饋控制報文將數據處理結果反饋給MQTT發布者角;所述數據處理模塊用于實現臟數據過濾、數據轉換和反饋功能;MQTT發布者角收到反饋信息后對臟數據進行調整,并重新進行數據上報。該支持數據處理的MQTT通訊協議方法、設備和存儲裝置,不僅能夠避免每個MQTT訂閱者做重復的數據處理工作,還能避免臟數據在整個MQTT傳輸過程的時間消耗,將臟數據及時反饋給發布者,從而能夠有效滿足用戶的個性化MQTT應用場景需求。需求。需求。


技術研發人員:

王中明 金偉毅 郭春杰 陳洪鑫 李勝

受保護的技術使用者:

蘇州思萃工業互聯網技術研究所有限公司

技術研發日:

2022.09.28

技術公布日:

2023/1/17


文章投稿或轉載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-1-84207-0.html

來源:專利查詢檢索下載-實用文體寫作網版權所有,轉載請保留出處。本站文章發布于 2023-01-28 09:06:56

發表評論

驗證碼:
用戶名: 密碼: 匿名發表
評論列表 (有 條評論
2人圍觀
參與討論