2017-12-08 13 views
0

実装したいシナリオは、まずサービスがmqttブローカーに接続します。ブローカーの私のmqttクライアントが接続され、他のブローカーに接続しました。これはnodejsライブラリーを使って行うことができますか?nodejsを使用して別のブローカーから切断した後、mqttブローカーに接続します。

var mqtt = require('mqtt') 
 
var client = mqtt.connect('mqtt://192.168.100.3') 
 

 
client.on('connect', function() { 
 
    console.log("connected to broker") 
 
    client.subscribe('mqtt_node_subscribe') 
 
    client.publish('mqtt_node_publish', 'Hello mqtt') 
 
}) 
 
client.on('close',function(){ 
 
    console.log("connection closed") 
 
}) 
 
client.on('message', function (topic, message) { 
 
    // message is Buffer 
 
    console.log("message arrived") 
 
    
 
    client.end() 
 
    client = mqtt.connect('mqtt://192.168.100.14') 
 
    }})

切断コンソールメッセージがされた後、私は、現在のブローカーから切断することができたが、他の1に接続することができません:

connected to broker 
message arrived 
connection closed 
+0

'close''イベントの中で2番目の' connect() 'を置き換えてみてください。また、そうでなければ 'error'イベントを監視するのが良いでしょう。 – alalp

答えて

0

あなたはクライアントを交換しますすべてのイベントハンドラを再作成する必要があります。

client.on('message', function (topic, message) { 
    // message is Buffer 
    console.log("message arrived") 

    client.end() 

    client = mqtt.connect('mqtt://192.168.100.14'); 
    client.on('connect', function() { 
    ... 
    }); 
    client.on('close',function(){ 
    ... 
    }) 
}}) 
+0

まだ他のブローカーに接続されていない – Lisa

+0

別のmqttサーバーに接続する前にクライアント参照変数をクリアする必要がありますか – Lisa

+0

@Lisaそれについて考えた後に私の答えを編集しました – hardillb

関連する問題