c++ mqtt客户端_MQTT-SN 物联网本地无线通信协议LoraZipbee等无线433MHz必备

MQTT-SN 协议是 MQTT 的直系亲属,它使用 UDP 进行通信,标准的端口是1884。MQTT-SN 的主要目的是为了适应受限的设备和网络,比如一些传感器,只有很小的内存和 CPU,TCP 对于这些设备来说非常奢侈。还有一些网络,比如 ZIGBEE,报文的长度在300字节以下,无法承载太大的数据包。所以 MQTT-SN 的数据包更小巧。

MQTT-SN 的官方标准下载地址: http://mqtt.org/new/wp-content/uploads/2009/06/MQTT-SN_spec_v1.2.pdf

MQTT-SN 和 MQTT 的区别

MQTT-SN 的信令和 MQTT 大部分都相同,比如都有 Will, 都有 Connect/Subscribe/Publish 命令.

MQTT-SN 最大的不同是,Topic 使用 TopicId 来代替,而 TopicId 是一个16比特的数字。每一个数字对应一个 Topic, 设备和云端需要使用 REGISTER 命令映射 TopicId 和 Topic 的对应关系。

MQTT-SN 可以随时更改 Will 的内容, 甚至可以取消. 而 MQTT 只允许在 CONNECT 时设定 Will 的内容, 而且不允许更改.

MQTT-SN 的网络中有网关这种设备,它负责把 MQTT-SN 转换成 MQTT,和云端的 MQTT Broker 通信. MQTT-SN 的协议支持自动发现网关的功能。

MQTT-SN 还支持设备的睡眠功能,如果设备进入睡眠状态,无法接收 UDP 数据,网关将把下行的 PUBLISH 消息缓存起来,直到设备苏醒后再传送。

CP7 MQTT-SN 网关

CP7 Mqtt-sn Gateway 是一个独立运行的网关应用程序,实现了 MQTT-SN 的大部分功能,它相当于一个在云端的 MQTT-SN 网关,直接和 Coolpy7 Core Broker 相连。

开源地址:https://github.com/Coolpy7/mqttsn-gateway

配置参数

File: bin/data/mqttsn.yml:

IsAggregate: trueHost: 0.0.0.0Port: 1884BrokerHost: "192.168.200.201"BrokerPort: 1883BrokerUser:BrokerPassword:LogFilePath: trueLogFilePath: mqttsn.logMessageQueueSize: 1000ReadBuffSize: 212992WriteBuffSize: 212992

bin/data/mqttsn_topics.yml

---test1: 1 test2: 2

启动 CP7 MQTT-SN 网关

# 下载测试工具git clone https://github.com/Coolpy7/mqttsn-gateway.git# 进入bin文件夹修改上文的两个配置文件​# 启动CP7 MQTT-SN网关# 参数c: 配置文件mqttsn.yml指定文件位置(默认为程序所有位置下的bin/data文件夹下)# 参数t: 配置文件mqttsn_topics.yml指定文件位置(默认为程序所有位置下的bin/data文件夹下)# 以下例示建立连接到192.168.200.201所在的Coolpy7 Core Broker./go_build_Coolpy7_sngw_go_linux_linux​# 工具执行后会以千为单位打印提示信息2018/11/06 09:28:20 aggregating_gw_impl.go:33: Connect to broker2018/11/06 09:28:20 gateway.go:59: set read buff size : 2129922018/11/06 09:28:20 gateway.go:65: set write buff size : 2129922018/11/06 09:28:21 statistics_reporter.go:30: [STATISTICS-REPORT] SESSION-COUNT : 0 , PUBLISH-RECV-COUNT : 0 , PUBLISH-SEND-COUNT : 0 , PUBLISH-COMP-COUNT : 02018/11/06 09:28:21 statistics_reporter.go:44: [STATISTICS-REPORT] PUBLISH-TAT-AVG : 0 , PUBLISH-TAT-MIN : 65535 , PUBLISH-TAT-MAX : 0

MQTT-SN 客户端库

  1. https://github.com/eclipse/paho.mqtt-sn.embedded-c/
  2. https://github.com/ty4tw/MQTT-SN
  3. https://github.com/njh/mqtt-sn-tools
  4. https://github.com/arobenko/mqtt-sn
fa397b690413154a06bc9e99b96975e7.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值