MQTT.js:如何在失败的连接尝试后关闭/连接到另一个代理? (使用桥接mosquitto)
问题描述:
我并成立了WebSocket的支持2名mosquitto经纪人和我能够与mqtt.jsMQTT.js:如何在失败的连接尝试后关闭/连接到另一个代理? (使用桥接mosquitto)
连接到它们现在我试图实现与可能的MQTT经纪人数组,故障证明版本,应该尝试连接,直到成功连接。如果连接失败,应尝试下一个代理...迄今为止这么好,但如果我尝试连接到脱机代理,以某种方式mqtt.js
尝试无限重新连接。我无法关闭连接尝试并连接到下一个连接。
var client = mqtt.connect("ws://firstbrokerip:9001");
client.on('connect', function() {
\t //consoleLog("[BROWSER] MQTT js-Client:"," Connected","green");
\t client.subscribe("testchannel"); \t
});
client.on('offline', function() {
\t //consoleLog("[BROWSER] MQTT js-Client:", ' Offline',"red");
client.end();
\t client = mqtt.connect("ws://secondbrokerip:9001");
});
的我怎么能关闭连接,并连接到下一个任何想法? (PLZ不在乎定制ConsoleLog功能)
答
你并不需要实现故障切换,它的烤到模块:
从mqtt.js DOC(https://github.com/mqttjs/MQTT.js#connect)
您还可以指定一个内容为[{host: 'localhost',port:1883},...]的服务器选项,在这种情况下,该阵列在每次连接时重复执行 。
因此,您通过connect
方法选项对象与一个名为服务器的密钥,这是一个要连接到的代理数组。
client = mqtt.connect({
servers: [
{
host: 'firstbroker.ip',
port: 9001,
protocol: 'ws'
},
{
host: 'secondbroker.ip',
port: 9001,
protocol: 'ws'
}
]
});
非常感谢hardillb ... :-)正是我在找的东西! –