没有通过paho mqttws31.js在移动网络客户端上收到mqtt消息

时间:2014-09-11 19:07:22

标签: javascript web-applications retain mqtt paho

我使用paho mqttws31.js(http://www.eclipse.org/paho/clients/js/)通过web-app中的websockets接收mqtt消息。在具有不同浏览器(chromeium,firefox ...)的电脑上,一切都非常流畅,没有任何错误。但是,如果我在移动设备上使用完全相同的源代码,例如平板电脑或智能手机,我就不会收到保留的消息。当我连接到代理时,我在onSuccess回调中订阅了一些保留的主题。但我大部分时间都没有收到保留的信息。 如上所述,这只发生在移动设备上。

提前致谢。

1 个答案:

答案 0 :(得分:1)

那些不想阅读所有评论的人。 这似乎是与lighttpd结合使用的mosquitto的错误,作为websocket-provider。

你能做什么:

使用: (简单的方法)HiveMQ(http://www.hivemq.com/mqtt-over-websockets-with-hivemq/)它本身就支持websockets,所以安装很简单,但它不是开源的,因为它是用Java编写的,我不确定它是否如同像蚊子一样快,但我绝对不知道。

或:投入一些时间来编译mosquitto的最新版本(1.4),它本身也支持websockets:http://jpmens.net/2014/07/03/the-mosquitto-mqtt-broker-gets-websockets-support/(但到目前为止尚未发布)此版本似乎也解决了这个问题。安装最新的mosquitto:http://goochgooch.wordpress.com/2014/08/01/building-mosquitto-1-4/

Edit0:我检查了速度,必须说带有websockets的HiveMQ比带有websockets的mosquitto要快。当我通过websockets连接时,我已经注意到了它,因为有一个小的延迟。然后我向浏览器发送了1000个值,然后再将它们返回给订阅客户端。 Hive似乎比mosquitto快3倍(我必须承诺,这可能不是一个可靠的实验)。所以对我来说,我的决定是显而易见的,只要mosquitto不能与lighttpd-websocket支持一起正常工作,我将继续使用蜂巢。很高兴听到一些意见。

编辑1:我处于两难境地:通过lighttpd支持Websockets非常快,比新的mosquitto websocket支持更快,比hivemq更快。当我在树莓上运行mqtt-broker时,我依赖于良好的性能,因此Edit0的讨论解决方案都不适合我。但是,如果我使用lighttpd,我将面对最初描述的问题。

有人有更方便的解决方案吗?

感谢您的帮助。