EMQX开源版设置支持离线消息

561 阅读1分钟

对于 EMQX设置离线消息的步骤和关键配置如下:

  1. 确保客户端使用适当的 QoS 等级

    • 当客户端订阅主题时,应该使用 QoS 等级 1 或 2,以便在离线时接收消息。
  2. 配置持久会话(Clean Session)

    • 客户端连接到 EMQX 时,应设置 clean session 标志为 false。这样,即使在断开连接后,客户端的会话和其订阅也会在服务器上保留。
  3. 编辑 EMQX 配置文件

    • 找到并编辑 EMQX 的配置文件 emqx.conf
  4. 设置离线消息队列长度

    • 修改 mqtt.mqueue.max_length 配置。这个配置决定了离线消息队列可以存储的最大消息数。例如:

      mqtt.mqueue.max_length = 1000
      

      这表示每个客户端的离线消息队列最多可以存储 1000 条消息。

  5. 调整会话(Session)的过期时间

    • 文件中找到 mqtt.session_expiry_interval 配置项,然后可以按照需求设置其值,这里设置为24小时。例如:

      mqtt.session_expiry_interval = 24h
      

      默认情况下,mqtt.session_expiry_interval 的值可能设置为 2h(2小时)

  6. 重启 EMQX

    • 对配置文件所做的更改在重启 EMQX 后生效。确保在更改配置后重启 EMQX 服务。
  7. 客户端重连逻辑

    • 确保客户端的重连逻辑能够处理会话的恢复。