【问题标题】:Change will on a mqtt connection更改将在 mqtt 连接上
【发布时间】:2018-03-08 00:40:57
【问题描述】:

我们正在使用 mqtt.js (https://www.npmjs.com/package/mqtt) 客户端连接到 AWS IoT 服务。

我们可以连接没问题,最后用下面的代码传入

var clientOptions = {
    will: {
        topic: "logout",
        payload: JSON.stringify({ _id: User.me._id, viewing: User.me.viewing })
    }
};  

client = mqtt.connect(signedUrl, clientOptions);

现在我想更新选项的遗嘱部分——将有效负载更改为具有新的查看属性。

有没有办法在不断开和触发旧遗嘱的情况下更新遗嘱?

【问题讨论】:

  • MQTT 规范中没有关于更改遗嘱的内容
  • 不可能吗?
  • 不是根据我能够找到的 MQTT 文档中的任何内容 - 也许您阅读规范可能会更好

标签: javascript client mqtt aws-iot


【解决方案1】:

遗嘱和遗嘱无法更改,只能在连接包中设置。

但是 Last Will 和 Truth 应该只在客户端超时时触发,而不是在完全断开连接时触发。这意味着您应该能够告诉客户端断开连接并使用新的 LWT 重新连接,而不会触发旧的 LWT 发布。

如果您使用干净会话 false 并在 QOS1 或更好的条件下订阅,那么您在重新连接时不应错过任何消息,因为代理应该排队并在重新连接时传递它们。

【讨论】:

    猜你喜欢
    • 2017-07-07
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    相关资源
    最近更新 更多