c-MQTT ISSUE:当我发送连接数据包时,Broker关闭连接



这是我在这里的第一篇文章。如果我的错误,请纠正我

我正在使用带有G620模块的自由缩放控制器连接到服务器。我开始实现MQTT客户端。

通过UART与G620 GPRS模块进行通信。通过AT命令,我连接到MQTTbroker。一旦我发送了连接数据包,代理就会关闭连接。需要帮助或建议。

连接数据包为:{ 0x10,0x12,0x00,0x04,M,Q,T,T,0x04,0x00,0x3C,0x00,0x00,0x06,Z,1,2,1,2,3 }

服务器根据MQTT协议断开您的连接有两种情况
1.如果您违反了协议格式
2。如果超过连接超时

终止协议冲突的原因:
-您可能错误地构建了一些协议字节。与协议文件交叉验证
-您可能已经连接,正在尝试再次连接。如果您有访问权限,请检查服务器端日志
-当您通过UART发送帧时,您可能使用了for循环来发送字节。如果for循环计数器基于"strlen(Connectpacket)",则不会得到确切的计数,因为"strlen"将在0x00之后终止。因此,服务器将收到一半的数据包,并断开您的违规连接。

您的协议似乎无效,
0x10-MQTT控制数据包类型
0x12-剩余长度
0x00-长度MSB
0x04-长度LSB
MQTT-协议名称
0x04-协议级别
0x00-连接标志
0x3C-保持有效MSB
FFF-保持有效LSB
0x00,0x06,Z,1,2,1,2,3-字节用于什么?与协议文件交叉验证。

将干净会话位设置为1。将0x00 MSB 0x3C LSB设置为保持活动。

相关内容

最新更新