Paho MQTT C Client Library Example

A simple example of synchronous transceiver.

概述

这是一个使用mosquitto作为服务器,使用Paho MQTT C Client Library作为客户端的关于MQTT协议的应用实例,项目仓库MQTT Example。

mosquitto部署

 # 安装mosquitto
 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
 sudo apt-get update

 sudo apt-get install mosquitto
 # mosquitto开发包
 # mosquitto也提供了对应的开发APIs,本例中使用的paho mqtt
 sudo apt-get install mosquitto-dev
 # mosquitto客户端
 sudo apt-get install mosquitto-clients

 # mosquitto启动服务器
 mosquitto -dp 1883

paho mqtt 同步和异步收发对比

同步收发模式和异步收发模式各有优缺点,官方的比较文档中简单的说明了两者的区别,最大的区别在于收发信息的处理和使用的API上。以下做一个简单介绍,具体如何使用应该依据应用开发需求而定,官方首页中有几个相关的简单例子。

同步模式

  • 发布:MQTTClient_Publish()MQTTClient_publishMessage(),假设设置服务质量为QoS1或QoS2,为了消息的成功发布,需要使用MQTTClient_waitForCompletion()等待确认消息的返回。

  • 订阅:需要相对频繁地调用(循环调用)MQTTClient_receive()MQTTClient_yield()来处理服务端的相应以及MQTT心跳以维持网络连接。

异步模式

  • 订阅和发布信息和同步模式类似。

  • 后台处理握手和网络连接。

  • 状态通知或消息收发使用开发者注册的回调函数进行处理。

Sample

在之前的文章中介绍了MQTT基础的通信模式,实际在开发过程中就是在模拟相关的过程,核心为CONNECTPUBLISHSUBSCRIBE控制报文,关于MQTT控制报文的分析可以看前文.

以下是同步收发的一个简单例子,代码仓库地址:MQTT_Sample。

Last updated

Was this helpful?