gpt4 book ai didi

javascript - 客户端可能会使 mqtt 代理重载

转载 作者:行者123 更新时间:2023-12-03 08:12:05 25 4
gpt4 key购买 nike

我正在使用 MQTT node.js mosca 代理。我用这个命令运行它;

mosca -v --http-port 3000 --http-bundle --http-static ./ | bunyan

我有一个浏览器 mqtt 客户端。代码如下所示;

var mqtt_client = mqtt.connect('ws://127.0.0.1:3000');
mqtt_client.subscribe('hello/world');
mqtt_client.on('connect', function () {
console.log("MQTT connected");
});

mqtt_client.on("message", function(topic, payload) {
console.log([topic, payload].join(": "));
//mqtt client connection not closed as line below is commented
//mqtt_client.end();
});

假设我有很多类似的浏览器客户端,每个客户端都订阅不同的 mqtt 主题。用户运行调用代码的网页,然后关闭选项卡。没有代码显式关闭连接或关闭主题。 MQTT 代理会因 RAM 过载而死亡吗?

最佳答案

当选项卡关闭时,Websocket 连接也将关闭,因此代理应该清理 session ,如果在保持事件期间没有收到消息或 ping,那么连接也将被清理。

主题无法关闭,没有所有权或打开/关闭的概念,它们只是消息路由的标识符。

如果您使用大于 0 的 QOS 和持久 session ,则在等待特定客户端重新连接时消息可能会累积,但编写良好的代理应将这些消息存储在磁盘上而不是内存中。

关于javascript - 客户端可能会使 mqtt 代理重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34100038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com