mqtt客户端c语言开发
MQTT客戶端
- MQTT客戶端開發
- 簡介
- 架構圖
- 傳輸層
- 協議層
MQTT客戶端開發
MQTT(消息隊列遙測傳輸)工作在 TCP/IP協議族上,是為硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發布/訂閱型消息協議。
本篇博客主要記錄客戶端采用paho庫二次封裝,適配linux/win平臺,使用c++語言開發。
主要內容包括,設計思想、架構設計、程序源碼等。
簡介
開發mqtt客戶端,首先選定paho庫作為基礎收發庫,應用具有自己的通信協議,mqtt客戶端需要將數據按照協議封裝,然后調用paho庫進行收發。
架構圖
應用層:調用該模塊的應用。
協議層:模塊對協議的封裝,主要任務是封包、解包以及調用傳輸層完成數據收發。
傳輸層:使用paho庫,完成連接的維護、數據的收發等具體通信的工作。
傳輸層
傳輸層使用paho作為基礎庫,具體使用方法見其官網:http://www.eclipse.org/paho/index.php?page=downloads.php
其支持的語言包括c/c++等,這里采用c++語言的庫。
https://github.com/eclipse/paho.mqtt.cpp
可根據官網給出的連接下載c++語言的paho庫,win/linux平臺的都可以找到。linux平臺的庫可以自己編譯得到,編譯流程如下:
協議層
所謂協議層,就是根據應用的功能定義的協議,按照應用需要完成實現的功能,將請求參數按照協議打包,在通過傳輸層的接口來發送和接收,同時也會將接收到的數據進行解包,結果返回應用。
因為mqtt協議的主題特性,協議層需要考慮應用對同一個主題T1發送了A、B、C三個功能請求,broker(中間服務器)也將三個功能請求結果返回給T2主題,客戶端如何將T2主題的三個返回分發給A/B/C,所以這里增加了三個條件變量,當發送A請求的時候,創建A的條件變量,阻塞等待A的應答,當在規定時間內,協議層收到數據,并解析數據確定是A的應答后,就講該應答分發給A請求,同時釋放A的條件變量,至此完成了A功能。
總結
以上是生活随笔為你收集整理的mqtt客户端c语言开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word计算机课实验报告,Word 文字
- 下一篇: Hadoop 各组件介绍