本文主要介绍基于TCP的MQTT连接,连接方式为MQTT客户端直连。
背景信息
在进行MQTT CONNECT协议设置时,需注意:
- 如果同一个设备证书(ProductKey、DeviceName和DeviceSecret)或同一组ProductKey、DeviceName、ClientID、DeviceToken同时用于多个物理设备连接,可能会导致客户端频繁上线、离线。因为新设备连接认证时,原设备会被迫离线,而设备被离线后,又会自动尝试重新连接。
- MQTT连接模式中,设备端Link SDK断开后会自动重连。您可以通过日志服务查看设备行为。
MQTT客户端直连
示例
使用开源MQTT客户端接入物联网平台的示例,请参见:
MQTT保活
设备端在保活时间间隔内,至少需要发送一次报文,包括ping请求。
连接保活时间的取值范围为30秒~1200秒。建议取值300秒以上。
从物联网平台发送CONNACK响应CONNECT消息时,开始心跳计时。收到PUBLISH、SUBSCRIBE、PING或 PUBACK消息时,会重置计时器。物联网平台每隔30秒定时检测一次设备的保活心跳,设备上线时间点距离最新定时检测时间点的时间,是定时检测的等待时间。定义最大超时时间为:保活心跳时间*1.5+定时检测的等待时间
。超过最大超时时间未收到设备消息,服务器会自动断开连接。