資料介紹
軟件簡介
一個高性能、高穩定性的跨平臺 MQTT 客戶端,基于 socket API 開發,可以在嵌入式設備(FreeRTOS/LiteOS/RT-Thread/TencentOS tiny)、Linux、Windows、Mac 上使用,擁有非常簡潔的 API 接口,以極少的資源實現 QOS2 的服務質量,并且無縫銜接了 mbedtls 加密庫。
優勢:
-
基于標準BSD socket之上開發,只要是兼容BSD socket的系統均可使用。
-
穩定:無論是
掉線重連
,丟包重發
,都是嚴格遵循MQTT協議標準
執行,除此之外對大數據量的測試無論是收是發,都是非常穩定(一次發送135K
數據,3秒一次),高頻測試也是非常穩定(7個主題同時收發,每秒一次,也就是1秒14個mqtt報文,服務質量QoS0、QoS1、QoS2都有)。因為作者以極少的資源設計了記錄機制
,對采用QoS1服務質量的報文必須保證到達一次,當發布的主題(qos1、qos2都適用)沒有被服務器收到時會自動重發,而對QoS2服務質量的報文保證有且只有處理一次(如果不相信它穩定性的同學可以自己去修改源碼,專門為QoS2服務質量去做測試,故意不回復PUBREC
包,讓服務器重發QoS2報文,且看看客戶端是否有且只有處理一次),而對于掉線重連的穩定性,這種則是基本操作了,沒啥好說的,在自動重連后還會自動重新訂閱主題,保證主題不會丟失,因此在測試中穩定性極好。 -
輕量級:整個代碼工程極其簡單,不使用mbedtls情況下,占用資源極少,作者曾使用esp8266模組與云端通信,整個工程代碼消耗的RAM不足15k(包括系統占用的開銷,對數據的處理開銷,而此次還是未優化的情況下,還依舊完美保留了掉線重連的穩定性,但是對應qos1、qos2服務質量的報文則未做測試,因為STM32F103C8T6芯片資源實在是太少了,折騰不起)。
-
無縫銜接mbedtls加密傳輸,讓網絡傳輸更加安全,而且接口層完全不需要用戶理會,無論是否加密,mqttclient對用戶提供的API接口是沒有變化的,這就很好的兼容了一套代應用層的碼可以加密傳輸也可以不加密傳輸。
-
擁有極簡的API接口,總的來說,mqttclient的配置都有默認值,基本無需配置都能使用的,也可以隨意配置,對配置都有健壯性檢測,這樣子設計的API接口也是非常簡單。
-
有非常好的代碼風格與思想:整個代碼采用分層式設計,代碼實現采用異步處理的思想,降低耦合,提高性能,具體體現在什么地方呢?很簡單,目前市面上很多MQTT客戶端發布主題都是要阻塞等待ack,這是非常暴力的行為,阻塞當前線程等待服務器的應答,那如果我想要發送數據怎么辦,或者我要重復檢測數據怎么辦,你可能會說,指定阻塞時間等待,那如果網絡延遲,ack遲遲不來,我就白等了嗎,對于qos1、qos2的服務質量怎么辦,所以說這種還是要異步處理的思想,我發布主題,那我發布出去就好了,不需要等待,對于qos1、qos2服務質量的MQTT報文,如果服務器沒收到,那我重發就可以,這種重發也是異步的處理,完全不會阻塞當前線程。
-
MQTT協議支持主題通配符
“#”、“+”
。 -
訂閱的主題與消息處理完全分離,讓編程邏輯更加簡單易用,用戶無需理會錯綜復雜的邏輯關系。
-
mqttclient內部已實現保活處理機制,無需用戶過多關心理會,用戶只需專心處理應用功能即可。
-
無縫銜接salof:它是一個同步異步日志輸出框架,在空閑時候輸出對應的日志信息,也可以將信息寫入flash中保存,方便調試。
-
不對外產生依賴。
-
使用 paho mqtt 庫
整體框架
擁有非常明確的分層框架。
目前已實現了Linux、TencentOS tiny、FreeRTOS、RT-Thread平臺(已做成軟件包,名字為kawaii-mqtt
),除此之外TencentOS tiny的AT框架亦可以使用(RAM消耗不足15K),并且穩定性極好!
平臺 | 代碼位置 |
---|---|
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 |
- MQTT客戶端快速入門指南 按鍵按下
- MQTT客戶端空氣質量快速入門指南
- MQTT客戶端快速入門指南 按鍵按下
- MQTT客戶端空氣質量快速入門指南
- MQTT客戶端移植C語言
- NodeMCU項目(三)MQTT客戶端
- 如何使用MQTT客戶端連接阿里云MQTT服務器詳細教程說明
- Cmd Markdown客戶端免費下載 11次下載
- 紫金橋軟件客戶端的啟動參數 3次下載
- Android 仿QQ客戶端及服務端源碼 3次下載
- mqtt 客戶端VS2010 59次下載
- CSDN博客客戶端源碼 1次下載
- CoolpyCould客戶端 18次下載
- 基于USB的加密視頻客戶端的設計與實現
- 用Delphi開發OPC客戶端工具的方法研究
- Raspberry Pi樹莓派使用Python實現MQTT通信設計 889次閱讀
- 適用于Linux的基于Rust的同步客戶端介紹 660次閱讀
- 分享一款別樣的ssh客戶端-PortX 772次閱讀
- 服務器Server和客戶端Client的區別 1425次閱讀
- 巨控MQTT功能推送說明 578次閱讀
- 盤點2023年值得嘗試的MQTT客戶端工具 5330次閱讀
- MQTT客戶端介紹 2482次閱讀
- MQTT在線配置裁剪工具 1001次閱讀
- 基于LwIP的HTTP客戶端設計 2974次閱讀
- 基于LwIP的TCP客戶端設計 2321次閱讀
- 基于RAW API的UDP客戶端設計 1320次閱讀
- 密鑰服務器和客戶端常見問題解答 1331次閱讀
- SSH 客戶端各種特性和使用說明 1612次閱讀
- 鴻蒙應用如何喚起 QQ 安卓客戶端進行授權 3932次閱讀
- Zoom的Web客戶端和WebRTC有什么關系 1.5w次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網絡安全從業者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論