Socket.IO의 방 개념을 MQTT로 변환하는 것에 대한 어떤 힌트도 줄 수는 없지만, Mosquitto.js을 보라. 실제 웹 소켓과 매우 유사하게 작동하는 브라우저의 웹 소켓을 통해 MQTT 연결을 쉽게 설정할 수 있습니다. 이 접근 방식을 사용하면 열려있는 모든 페이지가 MQTT 브로커에 고유 한 연결을 설정합니다. 따라서 클라이언트 측의 일부 조건에 따라 다른 주제를 구독 할 수도 있습니다.
약간의 예제 코드 : 웹 소켓 연결에 대한 기본 지원으로
var mqttSocket = new Mosquitto();
mqttSocket.onconnect = function(rc){
console.log("Connection established");
};
mqttSocket.ondisconnect = function(rc){
console.log("Connection terminated");
};
mqttSocket.onmessage = function(topic, payload, qos){
console.log("Message received " + topic + ":" + payload);
}
mqttSocket.connect("ws://yourserver:8080");
mqttSocket.subscribe('some/topic', 0);
아직 정말 아직 MQTT 브로커에 구현되지는 웹 소켓에 다리를 서버 측에서 필요한 소프트웨어의 작은 파이스 동전이 MQTT 브로커에 대한 연결
Mosquitto.js의 개발자
이 작업에 대한이 Lighttpd 웹 서버에 대한 사용자 정의 mod_websocket 모듈을 사용하는 것이 좋습니다. 그러나 대안으로 웹 소켓 연결을 최소한의 오버 헤드로 임의의 다른 TCP 포트로 변환하는
WSS을 시도 할 수도 있습니다.
위 예제에서 mqttSocket은 다음과 같은 인스턴스를 연결합니다. WSS가 들어오는 연결을 수신 대기 중입니다. 들어오는 연결을 원하는 MQTT 브로커로 전달하도록 WSS가 구성됩니다.
면책 조항 : WSS는 특히 Mosquitto MQTT 브로커의 인스턴스에 Mosquitto.js 연결 다리를 내 친구에 의해 작성되었습니다.
나는이 도움이되기를 바랍니다.
감사합니다. 나는 같은 결론을 내리고 이러한 점을 연구했습니다. 현재 pywebsocket에는 "room"개념이없는 것 같습니다. 실험적인 모스 탯 버전은 별개의 http 서버를 실행하고 싶지 않기 때문에 내가 원하는 것을 실제로 수행하지 않을 것입니다. 귀하의 광범위한 답변을 주셔서 감사합니다 그리고 잘하면이 같은 문제가 다른 사람을 도울 것입니다. – span