2017-03-31 6 views
0

(ブリッジmosquittoを使用するために)私はWebSocketをサポートして2つのmosquittoブローカーを設定しなかったと今、私はその可能MQTTブローカーの配列を持つフォールト証明するバージョンを実装しようとしたmqtt.jsMQTT.js:接続の試行に失敗した後に別のブローカーを閉じる/接続する方法は?

でそれらに接続することができています接続が成功するまで順番に接続しようとするべきです。接続に失敗した場合は、次のブローカを試してみてください...これまでのところ良いですが、オフラインブローカに接続しようとすると、何とか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"); 
 
});

私は接続を閉じて、次に接続する方法の任意のアイデア? は

答えて

0

あなたが失敗実装する必要はありません(PlzをカスタムConsoleLog機能を気にしない)を介して、それがモジュールに焼いています:

mqtt.jsドキュメント(https://github.com/mqttjs/MQTT.js#connect

から

コンテンツを持つサーバーオプションを指定することもできます。[{host: 'localhost'、port:1883}、...]この場合、接続ごとに配列 が繰り返されます。

したがって、connectメソッドオプションオブジェクトには、接続するブローカの配列であるserversというキーを渡します。

client = mqtt.connect({ 
    servers: [ 
    { 
     host: 'firstbroker.ip', 
     port: 9001, 
     protocol: 'ws' 
    }, 
    { 
     host: 'secondbroker.ip', 
     port: 9001, 
     protocol: 'ws' 
    } 
    ] 
}); 
+0

ありがとうございますhardillb ... :-)まさに私が探していたものです! –

関連する問題