我正在尝试使用sim 900 gprs调制解调器在pic微控制器中实现MQTT协议,我已经阅读了mqtt留档版本3.1。成功地,我可以使用以下命令从gprs调制解调器连接到myserver ip(117.218.81.15)…
>
AT CIPSTART=\"TCP\" , \"117.218.81.15\",\"1883\"
根据MQtt协议的留档,我写了连接包函数。建立tcp连接后,我试图发送connect_packet()函数,我没有从经纪人那里得到任何确认。.请帮助我解决这个问题,我已经用wireshark网络分析工具检查了我的数据到达1883 tcp端口,但我不知道为什么我没有得到任何确认?connect_packet代码是无符号字符topiclen=0,time_out1=0,time_out2=0;无符号字符连接数据,打包;memset(buffer,0, sizeof(buffer));time_out1=(time_out
希望你已经找到了解决方案,因为这是一篇旧文章。
您应该检查协议名称“MQIsdp”,如果您遵循MQTT-3.1.1规范,我认为它必须是“MQTT”。MQTT规范说
协议名称是一个UTF-8编码的字符串,表示协议名称“MQTT”,如图所示大写。该字符串、其偏移量和长度不会被MQTT规范的未来版本更改。
如果您的协议名称与规范不匹配,代理将静默丢弃您的数据包。您还必须更新缓冲区数组,因为MQTT在MQTT协议的变量标头中占用2 4个字节。
谢啦