<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          mqttclient跨平臺(tái) MQTT 客戶端

          聯(lián)合創(chuàng)作 · 2023-10-01 03:59

          一個(gè)高性能、高穩(wěn)定性的跨平臺(tái) 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í)行,除此之外對(duì)大數(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ī)制,對(duì)采用QoS1服務(wù)質(zhì)量的報(bào)文必須保證到達(dá)一次,當(dāng)發(fā)布的主題(qos1、qos2都適用)沒有被服務(wù)器收到時(shí)會(huì)自動(dòng)重發(fā),而對(duì)QoS2服務(wù)質(zhì)量的報(bào)文保證有且只有處理一次(如果不相信它穩(wěn)定性的同學(xué)可以自己去修改源碼,專門為QoS2服務(wù)質(zhì)量去做測試,故意不回復(fù)PUBREC包,讓服務(wù)器重發(fā)QoS2報(bào)文,且看看客戶端是否有且只有處理一次),而對(duì)于掉線重連的穩(wěn)定性,這種則是基本操作了,沒啥好說的,在自動(dòng)重連后還會(huì)自動(dòng)重新訂閱主題,保證主題不會(huì)丟失,因此在測試中穩(wěn)定性極好。

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

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

          • 擁有極簡的API接口,總的來說,mqttclient的配置都有默認(rèn)值,基本無需配置都能使用的,也可以隨意配置,對(duì)配置都有健壯性檢測,這樣子設(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ù)怎么辦,你可能會(huì)說,指定阻塞時(shí)間等待,那如果網(wǎng)絡(luò)延遲,ack遲遲不來,我就白等了嗎,對(duì)于qos1、qos2的服務(wù)質(zhì)量怎么辦,所以說這種還是要異步處理的思想,我發(fā)布主題,那我發(fā)布出去就好了,不需要等待,對(duì)于qos1、qos2服務(wù)質(zhì)量的MQTT報(bào)文,如果服務(wù)器沒收到,那我重發(fā)就可以,這種重發(fā)也是異步的處理,完全不會(huì)阻塞當(dāng)前線程。

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

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

          • mqttclient內(nèi)部已實(shí)現(xiàn)?;钐幚頇C(jī)制,無需用戶過多關(guān)心理會(huì),用戶只需專心處理應(yīng)用功能即可。

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

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

          • 使用 paho mqtt 庫

          整體框架

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

          整體框架

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

          平臺(tái) 代碼位置
          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
          瀏覽 25
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩乱论网站 | 97精品国产手机 | 啪啪啪免费网站视频 | 福利视频一区 | 亚洲少妇视频 |