新四季網

一種基於mqtt實現狀態呈現的方法

2023-07-29 19:10:41

一種基於mqtt實現狀態呈現的方法
【專利摘要】本發明公開了一種基於MQTT實現狀態呈現的方法,其包括:步驟1、接收第一客戶端向第二客戶端發送的狀態消息;步驟2、對需要緩存的狀態消息進行刷新,所述刷新為按照時間順序保留最新的狀態消息而刪除較早的狀態消息;步驟3、將所述最新的狀態消息儲存至緩存區;步驟4、將所述緩存區儲存的最新的狀態消息推送至第二客戶端。本發明還公開了一種基於MQTT實現狀態呈現的系統,其包括狀態消息接收單元、狀態消息刷新單元、狀態消息緩衝單元和狀態消息推送單元。本發明基於MQTT實現狀態呈現,繼承了MQTT輕量級的優點的同時通過只緩存最後一個狀態消息的機制保證了狀態消息的有效性。
【專利說明】-種基於MQTT實現狀態呈現的方法

【技術領域】
[0001] 本發明涉及一種基於MQTT實現狀態呈現的方法,特別是涉及一種基於MQTT實現 狀態呈現的方法。

【背景技術】
[0002] 狀態呈現(Presence)業務是指一個用戶或者客戶端向其他用戶發布自己當前的 通訊狀態。例如,它可以發布當前它正空閒或者正忙。其他用戶和該用戶通訊時,這個發布 的狀態能及時提示他們當前的通訊可能性以及意願等。目前最常用的方式是:在即時通訊 客戶端上,為用戶的每種狀態顯示一個清晰明了的圓標以及響應的文字。狀態呈現的應用 主要包括個人應用和行業(群組)應用:
[0003] 其中,個人應用大致包括:
[0004] 1、地址本的個性化:有了個性化的地址本信息,由機主來控制在對方地址本裡的 信息。
[0005] 2、狀態可變更:可設定或通知別人目前自己的狀態(開機、關機、出國、忙碌、開 會、睡覺)
[0006] 3、心情表現(多彩籤名):目前的心情如何,讓個性化籤名凸現自我。
[0007] 個性頭像:照片、卡通、awatar應用等
[0008] 4、事件通知:通知好友重要事件
[0009] 5、發布信息:發布住房、旅遊召集等信息
[0010] 行業(群組)應用大致包括:新聞、天氣預報,股票信息,電視、電影預告,優惠通 知,群組活動通告,話費等的查詢。
[0011] 現有技術中實現狀態呈現的方法主要有以下二種:
[0012] 一、XCAP 協議
[0013] XML 配置訪問協議 XCAP (The XML Configuration Access Protocol)是一種應用層 協議,它允許一個客戶端來讀、寫、修改和刪除應用程式配置數據存儲在伺服器上的XML格 式。
[0014] SMPLE規範是在2001年2月由IETF SMPLE工作組正式提出的,全稱為SIP Instant Messaging and Presence Leveraging Extensions (針對即時消息和呈現業務的利 用擴展的會話初始化協議),是SIP協議針對頂/presence的擴展。頂PLE是目前為止制定 的較為完善的一個規範,微軟和IBM都致力於在它們的即時通訊系統中實現這個協議。
[0015] SMPLE符合RFC2778提出的presence模型,其結構圖如圖1所示:
[0016] 註:上面的實體都是功能實體,與實際實現中的物理實體往往有差別。
[0017] 各功能實體如下:
[0018] 1、Presence Service :接收、存儲和分發 presence information。Presence Service既可以是一個物理實體上的server,也可以只是presentity和watcher之間的直 接通信。在具體實現中前者比較常見,後者是P2P的模式。
[0019] 2、Presentity :用於提供 presence information 給 Presence Service。
[0020] 3、Watcher :向 Presence Service 請求獲取 Presentity 的 presence information 或者自身的 watcher information。
[0021] 4、Principal :指單個的人、程序或者設備,也可以是人、程序、設備的集合體。對於 Presence Service 來說,各個 Principal 是不同的。
[0022] 5、Presence User Agent :為Principal 提供手段來操作 0個或者多個Presentity, Principal 操作 Presence User Agent 改變Presentity 的狀態。是Principal 和 Presentity 交互的 interface。
[0023] 6、Watcher User Agent :類似 Presence User Agent,Principal 通過其來操作 0 個 或多個Watcher,Watcher收到Presentity的新狀態之後也通過Watcher User Agent呈現 給 Principal〇
[0024] 7、Presence Protocol :定義了 Presentity 和 Presence Service,Watcher 和 Presence Service之間交換消息的一組標準。
[0025] 在具體的實現中最常見的是把Presence Service實現為一個Presence Server, Presence User Agent 和 Presentity 組合在一起,Watcher 和 Watcher User Agent 組合在一 起,由一個終端來同時支持這兩種組合體,這樣,一個終端就既能訂閱別人的也能發布自己 的 presence information。
[0026] 通過XCAP協議實現狀態呈現的缺點在於:
[0027] 1.基於SIP協議來實現,協議流程比較複雜,SIP上的NAT穿越及防火牆的問題, 同樣也存在於SMPLE上。
[0028] 2.基於XML文本來標識狀態,狀態的標識代價比較高。
[0029] 3.協議交互流程比較複雜。
[0030] 4.安裝部署XCAP的系統需要的代價比較高,對硬體有比較高的要求;
[0031] 5.對於終端來說消耗的流量和電量比較大。
[0032] 二、XMPP 協議
[0033] XMPP (Extensible Messaging and Presence Protocol 可擴展通訊和表不協議)也 是基於XML協議的通訊協議,前身是Jabber,目前已由IETF國際標準化組織完成了標準化 工作,利用XMPP的推送機制也可以實現狀態呈現的功能。
[0034] 通過XMPP協議實現狀態呈現的缺點在於:
[0035] 1、XMPP協議較複雜;
[0036] 2、XMPP協議的冗餘信息比多,是基於文本的XML來實現的。
[0037] 3、對於終端來說消耗的流量和電量比較大;
[0038] 4、部署硬體成本高。
[0039] MQTT (Message Queuing Telemetry Transport,消息隊列遙測傳輸)是 IBM 開發的 一個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支持所有平臺,幾乎可以把 所有聯網物品和外部連接起來,被用來當做傳感器和致動器(比如通過Twitter讓房屋聯 網)的通信協議。圖2是MQTT的基本交互流程,Broker是MQTT的伺服器,每個客戶端都 可以向對應的Topic發布消息,只要有客戶端訂閱了對應的Topic就可以收到其他客戶端 發布的消息。
[0040] 每個MQTT命令消息的消息頭都包含一個固定的報頭。有些消息需要一個可變的 報頭和一個payload (如表1所示)。
[0041] 表1、MQTT消息格式
[0042]

【權利要求】
1. 一種基於MQTT實現狀態呈現的方法,其特徵在於,其包括以下步驟: 步驟1、接收第一客戶端向第二客戶端發送的狀態消息; 步驟2、對需要緩存的狀態消息進行刷新,所述刷新為按照時間順序保留最新的狀態消 息而刪除較早的狀態消息; 步驟3、將所述最新的狀態消息儲存至緩存區; 步驟4、將所述緩存區儲存的最新的狀態消息推送至第二客戶端。
2. 根據權利要求1所述的基於MQTT實現狀態呈現的方法,其特徵在於,所述需要緩存 的狀態消息為在第二客戶端未上線時,第一客戶端向第二客戶端發送的狀態消息。
3. 根據權利要求1所述的基於MQTT實現狀態呈現的方法,其特徵在於,如果沒有所述 較早的狀態消息,則狀態消息刷新單元不進行刷新操作。
4. 根據權利要求1所述的基於MQTT實現狀態呈現的方法,其特徵在於,將所述緩存區 儲存的最新的狀態消息推送至第二客戶端後,第二客戶端返回推送確認信息,如未返回所 述推送確認信息,則再次向第二客戶端推送所述最新的狀態消息。
5. 根據權利要求1所述的基於MQTT實現狀態呈現的方法,其特徵在於,所述步驟1之 前還包括以下步驟: 接收第二客戶端訂閱的主題信息並向該第二客戶端發送訂閱確認信息,所述第一客戶 端向第二客戶端發送的狀態消息對應於所述主題信息。
6. -種基於MQTT實現狀態呈現的系統,其特徵在於,其包括: 狀態消息接收單元,用於接收第一客戶端向第二客戶端發送的狀態消息; 狀態消息刷新單元,用於對需要緩存的狀態消息進行刷新,所述刷新為按照時間順序 保留最新的狀態消息而刪除較早的狀態消息; 狀態消息緩衝單元,用於將所述最新的狀態消息儲存至緩存區; 狀態消息推送單元,用於將所述緩存區儲存的最新的狀態消息推送至第二客戶端。
7. 根據權利要求6所述的基於MQTT實現狀態呈現的系統,其特徵在於,所述需要緩存 的狀態消息為在第二客戶端未上線時,第一客戶端向第二客戶端發送的狀態消息。
8. 根據權利要求6所述的基於MQTT實現狀態呈現的系統,其特徵在於,如果沒有所述 較早的狀態消息,則狀態消息刷新單元不進行刷新操作
9. 根據權利要求6所述的基於MQTT實現狀態呈現的系統,其特徵在於,所述狀態消息 推送單元將所述緩存區儲存的最新的狀態消息推送至第二客戶端後,第二客戶端向狀態消 息推送單元返回推送確認信息,如未返回所述推送確認信息,則狀態消息推送單元再次向 第二客戶端推送所述最新的狀態消息。
10. 根據權利要求6所述的基於MQTT實現狀態呈現的系統,其特徵在於,所述基於 MQTT實現狀態呈現的系統進一步包括: 狀態消息訂閱單元,用於接收第二客戶端訂閱的主題信息並向該第二客戶端發送訂閱 確認信息,所述第一客戶端向第二客戶端發送的狀態消息對應於所述主題信息。
【文檔編號】H04L12/58GK104052653SQ201410283402
【公開日】2014年9月17日 申請日期:2014年6月23日 優先權日:2014年6月23日
【發明者】吳曉東, 顏君志, 梁生平, 黃昊, 左俊 申請人:廣東天波信息技術股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀