开发者社区> 问答> 正文

MQTT连接掉线相关问题

本文介绍MQTT连接掉线的排查方法。

展开
收起
请回答1024 2020-03-05 13:22:03 1653 0
1 条回答
写回答
取消 提交回答
  • 为什么设备一直上下线?

    如果发现设备反复上下线,很有可能同一个设备证书用于多个设备连接认证。例如有两个设备,但使用了同一个设备证书。设备1先上线,设备2后上线。设备2连接认证时,系统会把设备1的连接断掉,而设备1又会重连,再将设备2断掉,如此循环。可以通过日志服务,根据设备信息查询日志情况。

    连接次数过多,物联网平台可能会对设备进行降级。

    如何判断设备掉线的原因?

    如果不是设备主动断开连接,可以通过设备日志来判断原因。

    如果出现类似js Keepalive timeout after xx sec 这
    样的日志,说明设备没有及时发送心跳包给物联网平台。服务器容忍5秒的延迟,如果还是没有收到ping包,服务器会关闭与设备的连接。

    如何检查网络问题?

    如果您的本地环境无法连接服务器,请检查下本地网络情况。常用的网络检查方法:

    • ping ${productkey}.iot-as-mqtt.cn-shanghai.aliyuncs.com
      用于检测是否可以连接物联网平台服务器。

    • telnet ${productkey}.iot-as-mqtt.cn-shanghai.aliyuncs.com 1883
      用于检测端口连接情况。 如果以上的检测结果显示没有问题,但是接入还是不成功,请检查本地防火墙策略。建议可通过traceroute、tcpdump分析网络具体原因。

    另外,您也可以尝试使用443端口去连接MQTT server。在防火墙默认设置情况下,443端口被拦截几率小很多。(MQTT规范标准端口默认为1883。)

    如果您仍不确定问题所在,可以提交工单,我们将协助您进行排查。

    2020-03-05 13:28:19
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
RocketMQ Client-GO 介绍 立即下载
RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载