设备:EC800M-CN
开发:python
mqtt 部分代码
from umqtt import MQTTClient
我都设置了60,按理说会主动发心跳的。
现在的场景是,我会一分钟发一次数据,按理说设置的60*1.5=90s是在最大超时时间的,为啥老是离线,阿里云还说我没发心跳。而且还有丢包的情况,
设备:EC800M-CN
开发:python
mqtt 部分代码
from umqtt import MQTTClient
我都设置了60,按理说会主动发心跳的。
现在的场景是,我会一分钟发一次数据,按理说设置的60*1.5=90s是在最大超时时间的,为啥老是离线,阿里云还说我没发心跳。而且还有丢包的情况,
您可以使用qos=1,测试是否还会存在丢包的现象,qos=0不能完全保证对端接收
这个是警告,请问是否还有存在数据丢失的情况
这个警告是指说明模组qos1没有规定时间收到ack处理,qos1没有正确处理,请确认服务器端是否正常发送了ack确认位
如果仍有疑问,请帮忙抓取日志用于分析,并提供具体的模组固件版本,ASR平台Log工具使用说明 - QuecPython
CATStudio_V3_1_2_87.7z (84.1 MB)
\# 发布数据到华为云 Topic
def mqtt_publish(self, data):
payload = ujson.dumps(data)
print("📦 载荷:", payload)
try:
self.client.publish(CONF.MQTT_TOPIC, payload, retain=False, qos=1)
\# 循环多次等待 PUBACK,适配4G延迟
for i in range(5):
self.client.wait_msg()
utime.sleep(0.15) # 适当延时
print("✅ QOS1 收包完成")
except Exception as e:
print("❌ 异常: {}".format(e))
我问豆包说加个延时。还是会出现 日志有些红的
另外具体问题需要抓取日志才能明确
那麻烦帮抓取下日志,使用catstudio工具抓取日志