更改将在 mqtt 连接上
Change will on a mqtt connection
我们正在使用 mqtt.js (https://www.npmjs.com/package/mqtt) 客户端连接到 AWS IoT 服务。
我们可以连接没问题,用下面的代码传入 last will
var clientOptions = {
will: {
topic: "logout",
payload: JSON.stringify({ _id: User.me._id, viewing: User.me.viewing })
}
};
client = mqtt.connect(signedUrl, clientOptions);
现在我想更新选项的 will 部分 -- 更改负载以获得新的视图 属性。
有没有办法在不断开连接和触发旧遗嘱的情况下更新遗嘱?
Last Will and Testament无法更改,只能在connect packet中设置。
但是最后的遗嘱和遗嘱应该只在客户端超时时触发,而不是在完全断开连接时触发。这意味着您应该能够告诉客户端断开连接并重新连接新的 LWT,而不会触发旧的 LWT 被发布。
如果您使用 clean session false 并订阅 QOS1 或更好,那么您在重新连接时不应错过任何消息,因为代理应排队并在重新连接时传送它们。
我们正在使用 mqtt.js (https://www.npmjs.com/package/mqtt) 客户端连接到 AWS IoT 服务。
我们可以连接没问题,用下面的代码传入 last will
var clientOptions = {
will: {
topic: "logout",
payload: JSON.stringify({ _id: User.me._id, viewing: User.me.viewing })
}
};
client = mqtt.connect(signedUrl, clientOptions);
现在我想更新选项的 will 部分 -- 更改负载以获得新的视图 属性。
有没有办法在不断开连接和触发旧遗嘱的情况下更新遗嘱?
Last Will and Testament无法更改,只能在connect packet中设置。
但是最后的遗嘱和遗嘱应该只在客户端超时时触发,而不是在完全断开连接时触发。这意味着您应该能够告诉客户端断开连接并重新连接新的 LWT,而不会触发旧的 LWT 被发布。
如果您使用 clean session false 并订阅 QOS1 或更好,那么您在重新连接时不应错过任何消息,因为代理应排队并在重新连接时传送它们。