**
使用MQTT连接阿里云IOT每隔一段时间掉线,并且出现1911错误代码
**
在使用MQTT连接阿里云时,设备可以正常连接,数据格式正确,且平台可正常下发指令。
但设备每隔一段时间自动掉线,通过阿里云日志查看得出是1911错误代码,但我的设备是正常工作的啊!!!为什么会出现这种情况?
通过日志错误代码得1911的出错原因,但实际这种情况也很难去查找,因为设备在调试过程中,发现设备一直在发心跳ping,且云平台也有进行响应,这说明设备是一直与云平台保持联系的,然后再继续观看,发现的是云平台对设备的心跳包居然不进行响应,也就是说TCP连接在无意间断开了,这个过程一直在重复。
查阅了很多文档也没有得出个所以然
在云平台开发文档中有这样的说明
这里说明了心跳存活时间位60000ms - 300000ms 也就是60s-300s
我的心跳时间是3s一次,于是我将心跳时间改为10s一次,发现设备与平台持续在线时间居然延长了!!!!!
(在这说明,我连接华为云和其他云平台时,心跳3s是可以保持长时间在线的)
那问题解决了,只有将心跳时间改为60s-300s,而发送ping的间隔也应该在60s到设置的心跳存活时间,我设了30s发送一次心跳,实测可以保持
最后重点总结
发送心跳时长不得过短也不能过长,短了自动掉线,长了云平台不会重连!!!