Так что для тех, кто не хочет читать все комментарии. Похоже, это ошибка mosquitto в сочетании с lighttpd в качестве веб-провайдера.
Что ты можешь сделать:
либо используйте: (простой способ) HiveMQ (http://www.hivemq.com/mqtt-over-websockets-with-hivemq/) он поддерживает веб-сокеты по своей сути, поэтому установка выполняется легко, но это не с открытым исходным кодом, и, поскольку он написан на Java, я не уверен, что это так же быстро, как москит, но я точно не знаю.
или: потратьте немного времени на компиляцию новейшей версии (1.4) mosquitto, которая также изначально поддерживает веб-сокеты: http://jpmens.net/2014/07/03/the-mosquitto-mqtt-broker-gets-websockets-support/ (но не выпущен, поэтому far) эта версия, похоже, также решает эту проблему. Установка новейшей версии Mosquitto: http://goochgooch.wordpress.com/2014/08/01/building-mosquitto-1-4/
Edit0: я проверил скорость и должен сказать, что HiveMQ с веб-сокетами намного быстрее, чем mosquitto с веб-сокетами. Я уже заметил это при подключении через веб-сокеты, потому что была небольшая задержка. Затем я отправил 1000 значений в браузер, где они снова были возвращены подписавшемуся клиенту. Улей кажется в 3 раза быстрее, чем москит (я должен сказать, что это не может быть надежным экспериментом). Так что для меня мое решение очевидно, пока mosquitto не работает должным образом вместе с поддержкой lighttpd-websocket, я останусь с hive. Было бы неплохо услышать несколько мнений.
Edit1: У меня дилемма: поддержка веб-сокетов через lighttpd очень быстрая, намного быстрее, чем новая поддержка веб-сокетов mosquitto, и быстрее, чем hivemq. Поскольку я запускаю mqtt-broker на малине, я зависим от хорошей производительности, поэтому ни одно из обсуждаемых решений Edit0 мне не подходит. Но если я использую lighttpd, я сталкиваюсь с первоначально описанной проблемой.
Есть у кого-нибудь более удобное решение?
Спасибо за вашу помощь.
person
dan kutz
schedule
21.09.2014
netstat -anltp|grep :8010
- person Matt.   schedule 14.09.2014