[發(fā)明專利]一種基于MQTT-WebSocket的消息收發(fā)方法在審
| 申請(qǐng)?zhí)枺?/td> | 202110331845.9 | 申請(qǐng)日: | 2021-03-29 |
| 公開(kāi)(公告)號(hào): | CN113162989A | 公開(kāi)(公告)日: | 2021-07-23 |
| 發(fā)明(設(shè)計(jì))人: | 蒲鵬;陳燁 | 申請(qǐng)(專利權(quán))人: | 華東師范大學(xué) |
| 主分類號(hào): | H04L29/08 | 分類號(hào): | H04L29/08;H04L29/06 |
| 代理公司: | 上海藍(lán)迪專利商標(biāo)事務(wù)所(普通合伙) 31215 | 代理人: | 徐筱梅;張翔 |
| 地址: | 200241 *** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 mqtt websocket 消息 收發(fā) 方法 | ||
本發(fā)明公開(kāi)了一種基于MQTT?WebSocket的消息收發(fā)方法,包括如下步驟:1)對(duì)服務(wù)端進(jìn)行相關(guān)配置,啟動(dòng)MQTT代理消息隊(duì)列服務(wù)器,開(kāi)放WebSocket端口;2)對(duì)客戶端進(jìn)行相關(guān)配置,創(chuàng)建連接實(shí)例,為實(shí)例注冊(cè)一系列監(jiān)聽(tīng)事件,并提供認(rèn)證憑證,隨后發(fā)起連接請(qǐng)求;3)客戶端成功連接消息服務(wù)器后,通過(guò)WebSocket協(xié)議保持長(zhǎng)連接;客戶端可以作為發(fā)布者向消息服務(wù)器通過(guò)MQTT協(xié)議發(fā)布帶有主題的消息,使得消息服務(wù)器收到該消息后,根據(jù)其所攜帶的主題插入至相應(yīng)消息隊(duì)列末尾,完成消息的發(fā)布;4)客戶端也可以作為訂閱者訂閱指定主題,使得消息服務(wù)器將消息隊(duì)列中待發(fā)送的消息依次發(fā)送至訂閱者,完成消息的接收。本發(fā)明能夠提升連接的穩(wěn)定性和性能,并提升消息的傳輸效率。
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種基于MQTT-WebSocket (MessageQueuing Telemetry Transport over WebSocket)的消息收發(fā)方法。
背景技術(shù)
從共享單車等產(chǎn)品進(jìn)入公眾視野后,物聯(lián)網(wǎng)平臺(tái)的熱度大大增加,而業(yè)務(wù)需求對(duì)服務(wù)器與移動(dòng)設(shè)備或輕量級(jí)設(shè)備實(shí)時(shí)通信的要求也越來(lái)越頻繁,比如用戶可以通過(guò)使用手機(jī)掃描打印機(jī)的二維碼上傳PDF文件進(jìn)行打印,這就要求打印機(jī)與手機(jī)之間需要建立雙向通信。目前較為常用的技術(shù)一般是利用MQTT協(xié)議+HTTPS或WebSocket長(zhǎng)連接實(shí)現(xiàn),這兩種方式受網(wǎng)絡(luò)環(huán)境和設(shè)備性能影響較大,當(dāng)消息較多或客戶端連接數(shù)較大時(shí),容易出現(xiàn)傳輸緩慢或消息丟失的現(xiàn)象,不能滿足現(xiàn)有業(yè)務(wù)的需要。
發(fā)明內(nèi)容
本發(fā)明的目的旨在提供一種基于MQTT-WebSocket的消息收發(fā)方法,該方法既能保證消息傳輸穩(wěn)定不丟失,又能擁有較高的傳輸效率,使得數(shù)據(jù)包能夠?qū)崟r(shí)傳輸并降低消息服務(wù)器的壓力。
實(shí)現(xiàn)本發(fā)明目的的具體技術(shù)方案是:
一種基于MQTT-WebSocket的消息收發(fā)方法,方法包括如下步驟:
(1) 對(duì)服務(wù)端進(jìn)行配置,啟動(dòng)MQTT代理消息隊(duì)列服務(wù)器,開(kāi)放WebSocket端口;其中,所述配置:以賬密的形式設(shè)置token認(rèn)證憑證;升級(jí)HTTP協(xié)議以支持WebSocket協(xié)議;
(2) 對(duì)客戶端進(jìn)行配置,創(chuàng)建連接實(shí)例,為實(shí)例注冊(cè)監(jiān)聽(tīng)事件,并提供認(rèn)證憑證,隨后發(fā)起連接請(qǐng)求;其中,所述配置:給定唯一的客戶端id供消息服務(wù)器辨識(shí);在上線時(shí)接收未確認(rèn)過(guò)的離線消息;所述注冊(cè)監(jiān)聽(tīng)事件有:上線事件、下線事件、訂閱主題事件、發(fā)布消息事件及接收消息事件;
(3) 客戶端成功連接消息服務(wù)器后,通過(guò)WebSocket協(xié)議保持長(zhǎng)連接,客戶端作為發(fā)布者向消息服務(wù)器通過(guò)MQTT協(xié)議發(fā)布帶有主題的消息,使得消息服務(wù)器收到該消息后,根據(jù)其所攜帶的主題插入至相同主題的消息隊(duì)列末尾,完成消息的發(fā)布;
(4)客戶端作為訂閱者訂閱指定主題,使得消息服務(wù)器將消息隊(duì)列中待發(fā)送的消息依次發(fā)送至訂閱者,完成消息的接收。
步驟(3)中所述帶有主題的消息以字節(jié)流或JSON字符串的形式發(fā)送,并且設(shè)定低或高的服務(wù)質(zhì)量:設(shè)定低服務(wù)質(zhì)量時(shí),消息只會(huì)發(fā)送最多一次;設(shè)定高服務(wù)質(zhì)量時(shí),消息被接收處理后消息服務(wù)器會(huì)自動(dòng)向客戶端發(fā)送“完成”的通知,確保消息被發(fā)送至少一次。
所述步驟(4)中訂閱指定主題時(shí)設(shè)定接收低或高服務(wù)質(zhì)量的消息;在接收消息事件中處理消息時(shí),需要按照其發(fā)送時(shí)的數(shù)據(jù)格式進(jìn)行解碼;設(shè)定低服務(wù)質(zhì)量時(shí),消息只會(huì)接收最多一次;設(shè)定高服務(wù)質(zhì)量時(shí),消息被接收處理后客戶端會(huì)自動(dòng)向消息服務(wù)器發(fā)送“完成”的通知,確保消息被接收至少一次。
本發(fā)明的有益效果:
(1)消息服務(wù)器作為一個(gè)消息收發(fā)管理中心,提供了穩(wěn)定快速的傳輸保障。減少了客戶端對(duì)消息管理的壓力,高服務(wù)質(zhì)量的消息也避免了客戶端意外掉線造成消息丟失的情況。
(2)將MQTT協(xié)議的消息通過(guò)WebSocket端口傳輸,有益地結(jié)合了兩者各自的優(yōu)勢(shì),既提升了連接的穩(wěn)定性和性能,也提升了消息的傳輸效率。
附圖說(shuō)明
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華東師范大學(xué),未經(jīng)華東師范大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110331845.9/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)發(fā)送、設(shè)備連接方法、裝置和系統(tǒng)
- 一種認(rèn)證方法和裝置
- 一種基于nbiot網(wǎng)絡(luò)的mqtt數(shù)據(jù)處理方法和裝置
- 一種基于MQTT的遠(yuǎn)程監(jiān)控方法及系統(tǒng)
- 基于MQTT協(xié)議的消息推送方法及系統(tǒng)
- 一種基于MQTT協(xié)議的配電物聯(lián)系統(tǒng)
- 一種高可用無(wú)限MQTT消息服務(wù)擴(kuò)容的系統(tǒng)
- 基于MQTT云平臺(tái)的Modbus通信方法及系統(tǒng)
- 一種基于MQTT框架的遠(yuǎn)程車載控制系統(tǒng)
- 管理平臺(tái)與機(jī)器人MQTT協(xié)議測(cè)試方法、系統(tǒng)、設(shè)備及介質(zhì)
- 基于Websocket訪問(wèn)啟動(dòng)TLS認(rèn)證的Docker容器的方法及系統(tǒng)
- 一種基于websocket協(xié)議與http協(xié)議的即時(shí)數(shù)據(jù)傳輸方法及系統(tǒng)
- 一種微服務(wù)架構(gòu)的消息推送裝置及方法
- 一種websocket斷線重連方法及裝置
- 一種基于WebSocket的跨瀏覽器金融自助終端硬件調(diào)用方法
- 一種基于WebSocket的物聯(lián)網(wǎng)大屏監(jiān)控系統(tǒng)及方法
- 集群遠(yuǎn)程通信測(cè)試方法以及系統(tǒng)
- 一種數(shù)據(jù)轉(zhuǎn)發(fā)方法、API網(wǎng)關(guān)及消息服務(wù)系統(tǒng)
- 一種WebSocket接口的測(cè)試方法、裝置及設(shè)備
- 基于WebSocket的通信傳輸方法、裝置、設(shè)備、系統(tǒng)及存儲(chǔ)介質(zhì)





