使用qos2时,Mqtt-client不会收到重复的消息或有效负载

时间:2017-02-01 09:31:35

标签: java mqtt mosquitto

我的客户有问题,我不知道在哪里查看或查明问题但据我所知我使用qos 2而我的经纪人是mosquitto。是否有人对未收到但已发送的邮件有任何问题?

我的流程就像这些

  1. 订阅" topic1"

  2. 的ClientServer(作为数据库的桥梁)
  3. 客户将有效负载发布到" topic1"

  4. 出现问题,然后ClientServer将客户端发送回尚未保存的内容。

  5. 客户端收到该消息并再次发送具有正确有效负载的消息。

  6. ClientServer不再接收(大多数是2次 - 多次发布)

  7. 然后我使用另一个客户端发送一些mqtt-client统计信息来向ClientServer发送有效负载消息,在ClientServer发布令牌中,大多数ImqttDeliveryToken数据正在等待。我不知道为什么它是因为QOS 2?

    当使用带有客户端的qos 2(具有相同的唯一客户端ID)和ClientServer(具有相同的unique-client-id)时,我当前的伪代码是否存在问题?

    PS:我对同一个唯一客户端ID的意思是,因为运行时我的客户端不使用生成的客户端ID来允许qos 2工作。

1 个答案:

答案 0 :(得分:0)

我想我找到了答案。

似乎为了克服这个问题就是输入更多的

  

max_inflight_messages

     

(在mosquitto.conf中)

到N个允许ClientServer容纳的消息,它的默认值是10,我认为这就是为什么100多个异步发送的记录将被挂起或者我不知道发生了什么但它停止处理传入的消息。

至于我的测试,我暂时将其设置为1000。

希望有些人可能会告诉我有关此机上信息的其他信息吗?