【问题标题】:Why would mqtt messages not be delivered为什么mqtt消息不能投递
【发布时间】:2014-04-28 16:42:31
【问题描述】:

我在 android 4.3 上使用 paho,与位于 m2m.eclipse.org 的托管 eclipse mosquitto 服务器通信。我将客户端包装在服务中,并使用AlarmManager 向服务器发送保持活动消息。我有一个单独的客户端(仅使用 mqtt httbridge,或其他使用 paho 的 android 设备)将消息发送到我的服务正在收听的主题。

一切都很顺利......直到它没有。在某些时候,我的 android 服务停止接收消息。 keep-alives 继续发送,everyhting 似乎很好,但消息没有通过。我无法在 mosquitto 的本地实例上复制此行为,这让我认为这是 eclipse 端的某种配置,但会提供任何指针。

QoS 为 0。

【问题讨论】:

    标签: android mqtt paho


    【解决方案1】:

    您是否尝试过使用 QoS 1 或 2?

    From MQTT specs QoS 0 最多一次消息最多传递一次,或者根本不传递。它在网络上的传递未被确认。不存储消息。如果客户端断开连接或服务器出现故障,则消息可能会丢失。 QoS0 是最快的传输模式。它有时被称为“一劳永逸”。

    【讨论】:

    • 是的,效果相同。如果交付是间歇性的,那么 QoS 问题将成为罪魁祸首。它不是。在某些时候,它会停止。
    • 您在日志中看到断开连接了吗?每次重新连接时,您都必须重新订阅主题。如果您设置第二个订阅者(例如,您计算机上的一个小应用程序)会发生什么?
    • 这只发生在我与免费的 eclipse m2m 服务器交谈时,所以我看不到服务器日志。我的日志中没有任何内容表明有任何问题
    • 其他客户也会出现这种情况吗?
    猜你喜欢
    • 1970-01-01
    • 2020-09-18
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    相关资源
    最近更新 更多