溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何二次封裝MQTT開源組件moquette

發(fā)布時(shí)間:2021-12-06 16:52:01 來源:億速云 閱讀:615 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內(nèi)容主要講解“如何二次封裝MQTT開源組件moquette”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何二次封裝MQTT開源組件moquette”吧!

什么是moquette

moquette是一款開源的消息代理,整個(gè)系統(tǒng)基于java開發(fā),以netty為基礎(chǔ)完整實(shí)現(xiàn)了MQTT協(xié)議的。

封裝的目的

單純靠moquette直接使用到項(xiàng)目上確實(shí)有些不太好用,通過需求做一定量的封裝使用更方便。

下面開始對(duì)moquette的封裝做一定的記錄

封裝的內(nèi)容

1.封裝主要涉及內(nèi)容有跟隨SpringBoot啟動(dòng)同時(shí)啟動(dòng)mqtt服務(wù)器

2.封裝服務(wù)器對(duì)客戶端發(fā)送消息功能、封裝判斷客戶端是否在線、封裝服務(wù)器向設(shè)備發(fā)送消息并獲取返回值

目錄:

    java目錄下:

            config: 配置類文件

            handler: 客戶端連接和消息處理類文件

            server: 封裝了moquette的消息發(fā)送類

            utils: 需要使用到的工具類

    resources目錄下:

            mqtt: mqtt服務(wù)的端口、賬號(hào)、秘密等配置信息

如何二次封裝MQTT開源組件moquette

配置類文件:

MqttBrokerConfiguration.java:創(chuàng)建moquette的Server在Spring自動(dòng)注入對(duì)象

MqttBrokerRunConfiguration.java:mqtt服務(wù)隨SpringBoot項(xiàng)目啟動(dòng)配置類

MqttCustomConfig.java:管理mqtt需要使用到的Topic

如何二次封裝MQTT開源組件moquette

客戶端連接處理類:

下面2個(gè)類都是處理客戶端的連接、斷開連接、接收客戶端消息等事件功能,主要區(qū)分不同的使用場(chǎng)景,主要都是實(shí)現(xiàn)了moquette提供的 AbstractInterceptHandler類

如何二次封裝MQTT開源組件moquette

發(fā)送消息到客戶端類:

如何二次封裝MQTT開源組件moquette

使用說明:

1.接收客戶端數(shù)據(jù)API:實(shí)現(xiàn)AbstractInterceptHandler類重寫onPublish函數(shù)就能通過onPublish函數(shù)接收客戶端的消息。2.判斷客戶端是否在線APIMqttServer.isOnline(clientId)3.發(fā)送消息到客戶端此方法適用設(shè)備提供了接口與參數(shù)類型數(shù)量等消息發(fā)送,并且會(huì)獲得對(duì)應(yīng)的返回值,但是需要客戶端處理完數(shù)據(jù)之后再向服務(wù)器推送一條特定topic的消息,雙方約定好消息topicMqttServer.luatInvoke(clientId,apiTag,params)clientId:客戶端IDapiTag:客戶端接口名稱params:參數(shù)此方法適用于客戶端沒提供接口等消息發(fā)送,并且會(huì)獲得對(duì)應(yīng)的返回值,但是需要客戶端處理完數(shù)據(jù)之后再向服務(wù)器推送一條特定topic的消息,雙方約定好消息topicMqttServer.pubAndSub(clientId,rrpcCmd,topicPub,topicSub)clientId:客戶端IDrrpcCmd:發(fā)送的消息topicPub:客戶端訂閱的topictopicSub:客戶端返回消息發(fā)送的topic

MQTT客戶端通過TCP協(xié)議連接服務(wù)器,向服務(wù)器發(fā)送消息,服務(wù)器的AbstractInterceptHandler.onPublish(msg)接口能接收任何從各個(gè)客戶端發(fā)送的消息。同時(shí)客戶端需要監(jiān)聽回調(diào)函數(shù),保證接收到服務(wù)器的消息。MQTT服務(wù)器向客戶端發(fā)送消息之后有8秒鐘時(shí)間等待客戶端發(fā)布指定topic消息,服務(wù)器接收到的時(shí)候把它當(dāng)成一個(gè)返回值處理

封裝后的代碼路徑:https://gitee.com/winfongs/mqtt

到此,相信大家對(duì)“如何二次封裝MQTT開源組件moquette”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI