本节使用GitHub(https://github.com/aignacio/mqtt-sn-contiki_example)中实现的例子说明MQTT-SN 协议的应用,该例中的mqtt-sn.c 和mqtt-sn.h 定义了MQTT-SN 协议的实现。main_core.c 是应用MQTT-SN 协议的应用程序,以下是该应用程序中的几个重要模块:
函数init_broker()初始化服务器(broker),本例使用服务器RSMB(Really Small Message Broker)。RSMB 是MQTT 和MQTT-SN 协议的服务器实现,实现该协议的任何客户程序可以使用该服务器发送和接收消息,在Mosquitto 代码库上使用RSMB 的主要原因是Mosquitto 当前不支持MQTT-SN 协议。在Linux系统中RSMB简单易用,它是用C语言编写的轻量级代理,可以在任何嵌入式设备中运行。
仿真实现步骤如下:
步骤1:执行如下命令,下载MQTT-SN协议应用程序:
git clone https://github.com/aignacio/mqtt-sn-contiki_example mqtt-sn-contiki
步骤2:执行如下命令,下载MQTT-SN协议的实现RSMB:
cd mqtt-sn-contiki/tools/mosquitto.rsmb
git clone https://github.com/eclipse/mosquitto.rsmb
步骤3:编译RSMB:
cd mqtt-sn-contiki(www.xing528.com)
make all
步骤4:Cooja仿真器下建立如图15-17所示的网络拓扑,节点1承担边界路由器的角色,其上运行examples/ipv6/rpl-border-router/border-touter.c 程序,其他节点上运行MQTT-SN 协议应用程序mqtt-sn-contiki/main_core.c,在本例中的节点都使用z1微尘。
步骤5:用第12章的方法配置边界路由器节点1,然后使用如下命令启动RSMB代理服务器:
图15-17 网络拓扑
步骤6:运行仿真,MQTT-SN协议初始化过程如图15-18所示:
图15-18 MQTT-SN初始化
一旦所有配置完成,并且运行正常,就可以使用客户程序mosquit-clients观察MQTT 消息的传输,如订阅命令如下。关于这些命令的使用细节可参考相关文档。
mosquito_sub-t#-v
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。