代码之家  ›  专栏  ›  技术社区  ›  Dojo

MQTT:不接收离线消息

  •  0
  • Dojo  · 技术社区  · 6 年前

    我的客户机使用以下参数进行连接:

    1. 清除会话:假
    2. 客户ID:固定(每次相同)
    3. 订阅QoS=1
    4. 以qos=1发布的消息

    我试图验证,如果代理在客户机脱机时接收消息,那么消息将在代理上排队,并在再次联机时发送给客户机。

    但是,我发现代理在重新连接时不会向客户机发送任何内容。

    我就是这样测试的: 使用上面提到的四个参数将客户机连接到代理。 使用qos=1订阅感兴趣的主题 断开客户端连接

    使用另一个客户端程序和另一个客户端ID,连接到代理 将消息发布到现在脱机的客户机订阅的同一主题。 等待几秒钟,现在用与以前相同的连接设置重新连接脱机客户端。

    预期结果 :重新建立连接后,客户端将收到脱机时发送到其主题的消息。

    实际结果 :客户端不接收消息。它可以接收连接后发送的任何新消息,但不能接收脱机消息。**

    我已经用验证 线缆 发送到服务器的订阅和消息发布数据包的qos=1和clean session标志在connect数据包中为假。

    经纪人:蚊子v1.4.11

    mqtt配置文件:

    pid_file /var/run/mosquitto.pid
    
    persistence true
    persistence_location /var/lib/mosquitto/
    
    log_dest file /var/log/mosquitto/mosquitto.log
    log_type debug
    
    listener 9001
    protocol websockets
    
    listener 1883
    protocol mqtt
    
    allow_anonymous false
    acl_file /path/to/acl_file
    password_file /path/to/password_file
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Dojo    6 年前