2013-03-23 4 views
0

MQTT를 통해 일부 HTML5 페이지에 데이터를 전달하는 여러 가지 방법을 실험하고 있습니다.Pywebsocket "rooms"또는 "topic"개념

나는 Socket.IO과 함께 Node.js를에서 검토 한 Socket.IO 쉽게 MQTT "항목에 변환되는 "방 " 개념을 가지고 있기 때문에 그것은 좋은 해결책처럼 보인다 ". pywebsocket 날 모든 페이지에 동일한 데이터를 전송하지 않고 여러 페이지에 같은 websockethandler를 사용할 수 있도록 할 그러한 개념이있는 경우

이 궁금 해요.

some examples과 함께 pywebsocket Google 코드 페이지를 살펴 봤지만 이런 종류의 동작을 허용하는 정보를 찾을 수 없었습니다. 누구든지 이것에 대해 더 많은 정보를 가지고 있다면, 나는 매우 행복 할 것이다.

답변

3

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 연결 다리를 내 친구에 의해 작성되었습니다.

나는이 도움이되기를 바랍니다.

+0

감사합니다. 나는 같은 결론을 내리고 이러한 점을 연구했습니다. 현재 pywebsocket에는 "room"개념이없는 것 같습니다. 실험적인 모스 탯 버전은 별개의 http 서버를 실행하고 싶지 않기 때문에 내가 원하는 것을 실제로 수행하지 않을 것입니다. 귀하의 광범위한 답변을 주셔서 감사합니다 그리고 잘하면이 같은 문제가 다른 사람을 도울 것입니다. – span