2017-03-31 33 views
0

我并成立了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功能)

回答

0

你并不需要实现故障切换,它的烤到模块:

从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' 
    } 
    ] 
}); 
+0

非常感谢hardillb ... :-)正是我在找的东西! –

相关问题