V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lanxiner
V2EX  ›  编程

MQTT 通信协议 QOS 的疑问

  •  
  •   lanxiner · 122 天前 · 928 次点击
    这是一个创建于 122 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在开发 android 客户端时使用 MQTT 协议:当 QOS 等于 2 时,断网的情况下尝试推送数据到服务器,此时推送的数据会超时, 按理说网络恢复后所有的推送数据会自动再次发送. 不会出现丢失的情况. 但是我遇到某些手机会出现断网下发送的数据, 再次联网后无法自动再次发送,数据永久性的丢失了. [使用的 MQTT 是是 paho] 为什么会出现这种情况, 不同的手机 qos 的效果不同?

    第 1 条附言  ·  122 天前
    我寻思 paho 也是 MQTT 中挺强的 java 实现库, 不至于很好的实现 MQTT 的 QOS 吧
    4 条回复    2021-08-03 11:29:32 +08:00
    yitingbai
        1
    yitingbai  
       122 天前
    MQTT 没有你想象的那么稳定, 最好还是在应用层在做一次判断
    melsp
        2
    melsp  
       122 天前 via Android
    mqtt 好熟悉啊,还是大三做物联网实验学习过
    masterclock
        3
    masterclock  
       122 天前
    MQTT 协议理论上可以 QoS 2,但各种库未必真的能实现,比如超过最大外发缓存就会放弃数据,有些库会在调用发送时直接失败,有些库没有任何提醒直接丢数据
    gam2046
        4
    gam2046  
       122 天前
    也在 Android 中使用了 MQTT,可以尝试 C/C++版本的 paho,NDK 编译一下也不麻烦。我目前是这么用的 MQTTv5,问题不大。
    我是自己编译了 C 版本的,通过 JNI 暴露简单的接口到 Java 。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1078 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:45 · PVG 03:45 · LAX 11:45 · JFK 14:45
    ♥ Do have faith in what you're doing.