電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>mqttclient跨平臺MQTT客戶端

mqttclient跨平臺MQTT客戶端

2022-06-21 | zip | 1.14 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 Apache
開發(fā)語言 C/C++
軟件類型 開源軟件

軟件簡介

一個(gè)高性能、高穩(wěn)定性的跨平臺 MQTT 客戶端,基于 socket API 開發(fā),可以在嵌入式設(shè)備(FreeRTOS/LiteOS/RT-Thread/TencentOS tiny)、Linux、Windows、Mac 上使用,擁有非常簡潔的 API 接口,以極少的資源實(shí)現(xiàn) QOS2 的服務(wù)質(zhì)量,并且無縫銜接了 mbedtls 加密庫。

優(yōu)勢:

  • 基于標(biāo)準(zhǔn)BSD socket之上開發(fā),只要是兼容BSD socket的系統(tǒng)均可使用。

  • 穩(wěn)定:無論是掉線重連,丟包重發(fā),都是嚴(yán)格遵循MQTT協(xié)議標(biāo)準(zhǔn)執(zhí)行,除此之外對大數(shù)據(jù)量的測試無論是收是發(fā),都是非常穩(wěn)定(一次發(fā)送135K數(shù)據(jù),3秒一次),高頻測試也是非常穩(wěn)定(7個(gè)主題同時(shí)收發(fā),每秒一次,也就是1秒14個(gè)mqtt報(bào)文,服務(wù)質(zhì)量QoS0、QoS1、QoS2都有)。因?yàn)樽髡咭詷O少的資源設(shè)計(jì)了記錄機(jī)制,對采用QoS1服務(wù)質(zhì)量的報(bào)文必須保證到達(dá)一次,當(dāng)發(fā)布的主題(qos1、qos2都適用)沒有被服務(wù)器收到時(shí)會自動重發(fā),而對QoS2服務(wù)質(zhì)量的報(bào)文保證有且只有處理一次(如果不相信它穩(wěn)定性的同學(xué)可以自己去修改源碼,專門為QoS2服務(wù)質(zhì)量去做測試,故意不回復(fù)PUBREC包,讓服務(wù)器重發(fā)QoS2報(bào)文,且看看客戶端是否有且只有處理一次),而對于掉線重連的穩(wěn)定性,這種則是基本操作了,沒啥好說的,在自動重連后還會自動重新訂閱主題,保證主題不會丟失,因此在測試中穩(wěn)定性極好。

  • 輕量級:整個(gè)代碼工程極其簡單,不使用mbedtls情況下,占用資源極少,作者曾使用esp8266模組與云端通信,整個(gè)工程代碼消耗的RAM不足15k(包括系統(tǒng)占用的開銷,對數(shù)據(jù)的處理開銷,而此次還是未優(yōu)化的情況下,還依舊完美保留了掉線重連的穩(wěn)定性,但是對應(yīng)qos1、qos2服務(wù)質(zhì)量的報(bào)文則未做測試,因?yàn)?a href='http://wenjunhu.com/v/tag/751/' target='_blank' class='arckwlink_none'>STM32F103C8T6芯片資源實(shí)在是太少了,折騰不起)。

  • 無縫銜接mbedtls加密傳輸,讓網(wǎng)絡(luò)傳輸更加安全,而且接口層完全不需要用戶理會,無論是否加密,mqttclient對用戶提供的API接口是沒有變化的,這就很好的兼容了一套代應(yīng)用層的碼可以加密傳輸也可以不加密傳輸。

  • 擁有極簡的API接口,總的來說,mqttclient的配置都有默認(rèn)值,基本無需配置都能使用的,也可以隨意配置,對配置都有健壯性檢測,這樣子設(shè)計(jì)的API接口也是非常簡單。

  • 有非常好的代碼風(fēng)格與思想:整個(gè)代碼采用分層式設(shè)計(jì),代碼實(shí)現(xiàn)采用異步處理的思想,降低耦合,提高性能,具體體現(xiàn)在什么地方呢?很簡單,目前市面上很多MQTT客戶端發(fā)布主題都是要阻塞等待ack,這是非常暴力的行為,阻塞當(dāng)前線程等待服務(wù)器的應(yīng)答,那如果我想要發(fā)送數(shù)據(jù)怎么辦,或者我要重復(fù)檢測數(shù)據(jù)怎么辦,你可能會說,指定阻塞時(shí)間等待,那如果網(wǎng)絡(luò)延遲,ack遲遲不來,我就白等了嗎,對于qos1、qos2的服務(wù)質(zhì)量怎么辦,所以說這種還是要異步處理的思想,我發(fā)布主題,那我發(fā)布出去就好了,不需要等待,對于qos1、qos2服務(wù)質(zhì)量的MQTT報(bào)文,如果服務(wù)器沒收到,那我重發(fā)就可以,這種重發(fā)也是異步的處理,完全不會阻塞當(dāng)前線程。

  • MQTT協(xié)議支持主題通配符“#”、“+”。

  • 訂閱的主題與消息處理完全分離,讓編程邏輯更加簡單易用,用戶無需理會錯(cuò)綜復(fù)雜的邏輯關(guān)系。

  • mqttclient內(nèi)部已實(shí)現(xiàn)保活處理機(jī)制,無需用戶過多關(guān)心理會,用戶只需專心處理應(yīng)用功能即可。

  • 無縫銜接salof:它是一個(gè)同步異步日志輸出框架,在空閑時(shí)候輸出對應(yīng)的日志信息,也可以將信息寫入flash中保存,方便調(diào)試。

  • 不對外產(chǎn)生依賴。

  • 使用 paho mqtt 庫

整體框架

擁有非常明確的分層框架。

pYYBAGKn9aCAT93fAACEEyhDI_E610.png

目前已實(shí)現(xiàn)了Linux、TencentOS tiny、FreeRTOS、RT-Thread平臺(已做成軟件包,名字為kawaii-mqtt),除此之外TencentOS tiny的AT框架亦可以使用(RAM消耗不足15K),并且穩(wěn)定性極好!

平臺 代碼位置
Linux https://github.com/jiejieTop/mqttclient
TencentOS tiny https://github.com/Tencent/TencentOS-tiny/tree/master/board/Fire_STM32F429
TencentOS tiny AT 框架 https://github.com/jiejieTop/gokit3-board-mqttclient
RT-Thread https://github.com/jiejieTop/kawaii-mqtt
FreeRTOS https://github.com/jiejieTop/freertos-mqttclient
?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)