2014-09-11 3 views
2

웹 응용 프로그램의 웹 소켓을 통해 mqtt 메시지를 수신하는 데 paho mqttws31.js (http://www.eclipse.org/paho/clients/js/)를 사용합니다. 다른 브라우저 (chromeium, firefox ...)를 사용하는 PC에서는 모든 것이 오류없이 완벽하게 작동합니다. 그러나 태블릿이나 스마트 폰과 같은 휴대 기기에서 똑같은 소스 코드를 사용하면 보관 된 메시지가 수신되지 않습니다. 브로커에 연결하면 onSuccess 콜백 내부에서 일부 보류 된 주제를 구독합니다. 그러나 나는 대부분의 시간 동안 보존 된 메시지를받지 못한다. 모바일 장치에서만 발생합니다.paho mqttws31.js를 통해 모바일 웹 클라이언트에서 mqtt 메시지를 수신하지 않음

미리 감사드립니다.

+0

비슷한 질문이 여기에 있습니다 : http://stackoverflow.com/questions/25176643/android-paho-mqtt-client-does-not-receive-messages-once-network-connectivity-c – Dom

+0

이것은 자바를 말합니다. javascript (큰 차이) + 비 모바일 브라우저에서 두 번 언급했듯이. –

+0

모스 퀴토에 대해 살펴본 결과 웹 클라이언트가 보유한 주제를 구독하자마자 보존 된 메시지가 전송된다는 사실을 알게되었습니다. 1410481320 : clientId-NCrfWsdfTwn (d0, q0, r0, m0, 'current_topics')으로 PUBLISH를 보냅니다. .. (3144 bytes))하지만이 메시지는 결코 모바일 장치에 도달하지 못합니다. –

답변

1

모든 댓글을 읽지 않으려는 사용자에게 적합합니다. 이것은 webtocket-provider처럼 lighttpd와 함께 모기의 버그 인 것 같습니다.

당신이 할 수있는 일 :

사용 중 하나 은 (간단한 방법) HiveMQ은 (http://www.hivemq.com/mqtt-over-websockets-with-hivemq/은)는 본질적으로 WebSocket을 지원하므로 설치가 바람이지만 오픈 소스 아니에요과 자바 I에 기록 된대로 ' 모스 킷토만큼 빠르지는 모르겠지만 확실히 모르겠습니다.

또는 : 웹 소켓을 기본적으로 지원하는 모질라의 최신 버전 (1.4)을 컴파일하는데 약간의 시간을 투자하십시오 : http://jpmens.net/2014/07/03/the-mosquitto-mqtt-broker-gets-websockets-support/ (그러나 지금까지 출시되지 않았습니다)이 버전은이 문제를 해결하는 것으로 보입니다. 최신 모기 설치 : http://goochgooch.wordpress.com/2014/08/01/building-mosquitto-1-4/

Edit0 : 속도를 확인한 결과 웹 소켓이있는 HiveMQ가 웹 소켓이있는 모스키토보다 훨씬 빠릅니다. 작은 대기 시간이 있었기 때문에 웹 소켓을 통해 연결했을 때 이미 알아 챘습니다. 그런 다음 1000 개의 값을 브라우저에 보내면 다시 구독 클라이언트로 반환됩니다. 하이브는 모기 (mosquitto)보다 3 배 빠르다고 생각합니다. 믿을만한 실험이 아닐 수도 있습니다. 따라서 내 결정은 분명합니다. 모기가 lighttpd-websocket 지원과 함께 제대로 작동하지 않는 한 하이브에 머무를 것입니다. 의견을 듣는 것이 좋을 것입니다.

Edit1 : 필자는 딜레마에 빠졌습니다 : lighttpd를 통한 Websocketsupport는 새로운 mosquitto 웹 소켓 지원보다 빠르고 빠르며 hivemq보다 빠릅니다. 라즈베리에서 mqtt-broker를 실행하기 때문에 성능이 좋지 않아서 Edit0의 논의 된 솔루션 중 어느 것도 나에게 적합하지 않습니다. 그러나 lighttpd를 사용하면 원래 설명한 문제에 직면하게됩니다.

누군가가 더 편리한 해결책을 가지고 있습니까?

당신의 도움을 위해 Thx.

+0

위에서 말한 것처럼 lighttpd + mod_websockets의 버그라고 확신합니다. 둘 중 어떤 버전을 사용하고 있습니까? – ralight

+0

또한 속도를 측정 한 방법에 대해 자세히 설명해 주시겠습니까? – ralight

+0

lighttpd 1.4를 mod_websocket 3.5와 함께 사용하고 있습니다. 이것이 잘못된 조합입니까? 그렇다면 어떤 버전이 함께 들어 있는지 말해 줄 수 있습니까? 필자는 파이썬 스크립트를 통해 측정 된 왕복 시간으로 속도를 측정합니다. 이것은 임의의 256 바이트를 라스베리 파이에있는 모스키토 브로커를 통해 구독 웹 클라이언트에게 보냅니다. 웹 클라이언트는 즉시 다른 클라이언트로 패킷을 보냅니다. –

관련 문제