Porting steps:
1:下载MQTT源码文件
https://github.com/eclipse/paho.mqtt-sn.embedded-c
2:在2503工程中新加一个task或service,将MQTTPacket\src目录下
的文件添加自定义到工程中
3:将MQTTPacket\samples下的transport.c和transport.h添加到工程
4: MQTTPacket\src目录下主要是MQTT协议包的封装和解析,2503平台并不需要修改,只需要根据2503 socket框架,对transport.c和transport.h进行适当调整。
5:参考已知的MQTT sample调用MQTT api实现消息的订阅和发布
MQTT debug:
1:wireshark抓包工具,最新版本已经支持MQTT协议,无需另外安装插件支持MQTT协议解析
https://www.wireshark.org/download.html
2:MQTT server
若当前设备使用WIFI进行网络连接,可以同PC组建局域网,在局域网环境下,PC可安装MQTTfx来进行MQTT测试:
Local tool MQTTfx安装以及server搭建:
https://blog.csdn.net/d_o_n_g2/article/details/77097115?locationNum=7&fps=1https://cloud.tencent.com/developer/article/1101803
若设备采用GPRS网络,则需要连接公用服务器进行测试:
非加密连接端口
Server: test.mosquito.org
Port: 8883
SSL加密连接:
Server: iot.eclipse.org
Port:1883
MQTT test example:
当前验证示例是直接在现有的mmi task中的mmi_service module添加的MQTT,并在开机阶段调用触发,客户可根据产品需求自行添加。
1:在plutommi/service目录下新建MQTT文件夹并将MQTT开源代码中的MQTTPacket/src目录下文件以及transport.c和tranport.h复制到MQTT folder,新建mqtt_main.c实现non-blocking socket测试,blocking_mqtt_main.c验证blocking socket mqtt功能【2503平台默认支持non-blocking socket, blocking socket need apply patch】
2:在make/plutommi/mmi_service中的mmi_service.mak中添加需要编译的src和include路径
3:具体transport socket调整以及mqtt_main.c以及blocking_mqtt_main.c demo实现请参考demo package 中的代码,最后调用mqtt_test_entry/blocking_mqtt_test_entry入口函数即可。
blocking MQTT wireshark :
Non-blocking MQTT wireshark :
评论