2017-03-31 61 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 ... :-)正是我在找的東西! –

相關問題