2017-03-31 7 views
0

(브리지 mosquitto를 사용하는이) 지금은 가능 MQTT 브로커의 배열에 오류가 - 증명 버전을 구현하기 위해 노력하는 연결에 성공할 때까지 순서대로 연결을 시도해야합니다. 연결이 실패하면 다음 브로커를 시도해야합니다 ... 지금까지는 좋았지 만 오프라인 브로커에 연결하려고 시도하면 어떻게 든 mqtt.js은 끝없이 다시 연결하려고합니다. 연결 시도를 닫고 다음 시도에 연결할 수 없습니다.MQTT.js : 연결 시도가 실패한 후 다른 브로커를 닫거나 연결하는 방법은 무엇입니까? 나는 웹 소켓을 지원하는 두 개의 mosquitto 브로커를 설정하고 <a href="https://github.com/mqttjs/MQTT.js#example" rel="nofollow noreferrer">mqtt.js</a></p> <p>로 연결할 수 있어요 않았다

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 메소드 옵션 오브젝트에는 연결할 브로커의 배열 인 서버라는 키가 있습니다.

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

고맙습니다. ...-) 정확히 내가 뭘 찾고 있었습니까! –