簡體   English   中英

MQTT.js:連接嘗試失敗后如何關閉/連接到另一個代理? (用於使用橋接蚊子)

[英]MQTT.js: How to close / connect to another broker after failed connection attempt? (for using bridged mosquitto)

我確實設置了兩個具有websocket支持的mosquitto代理,並且能夠使用mqtt.js連接到它們

現在,我嘗試使用一系列可能的mqtt代理來實施一個經過驗證的版本,應該嘗試按順序連接該代理,直到成功連接為止。 如果連接失敗,則應該嘗試使用下一個代理...到目前為止,還不錯,但是如果我嘗試連接到脫機代理,則mqtt.js嘗試無休止地重新連接。 我無法關閉連接嘗試並連接到下一個。

 var client = mqtt.connect("ws://firstbrokerip:9001"); client.on('connect', function() { //consoleLog("[BROWSER] MQTT js-Client:"," Connected","green"); client.subscribe("testchannel"); }); client.on('offline', function() { //consoleLog("[BROWSER] MQTT js-Client:", ' Offline',"red"); client.end(); client = mqtt.connect("ws://secondbrokerip:9001"); }); 

關於如何關閉連接並連接到下一個的任何想法? (請不要在意自定義ConsoleLog函數)

您無需實現故障轉移,它已包含在模塊中:

從mqtt.js文檔( 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'
    }
  ]
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM