¿Puede un navegador web utilizar MQTT?


Estamos considerando usar MQTT como protocolo de mensajería en un nuevo dispositivo que estamos construyendo. También nos gustaría una interfaz web para el dispositivo. ¿Alguien sabe si puede implementar una aplicación cliente de navegador (sin complementos adicionales) que hable MQTT?

 26
Author: fred basset, 2013-04-17

8 answers

Sí, como se menciona en el comentario de Steve-o MQTT vía websockets es muy posible.

Hay 2 opciones en este momento

  1. IBM MQ 7.5 viene con soporte websockets, puede encontrar detalles aquí .
  2. El broker Mosquitto tiene un cliente javascript con un ejemplo ejecutando aquí.

Para responder a su segunda pregunta, lighttpd tiene un módulo websockets que se puede usar para reenviar a un corredor existente con detalles aquí.

No he podido encontrar nada para Apache que no necesite que escribas tu propia biblioteca para hacer el reenvío.

 15
Author: hardillb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-13 13:34:53

Para extender la respuesta de hardillbs:

Ahora hay una tercera opción:

HiveMQ admite websockets nativos sin necesidad de ningún servidor web externo. Funciona perfectamente con el cliente Javascript de Eclipse Paho .

Si quieres probarlo, el public MQTTDashboard (que usa HiveMQ debajo de las capuchas) soporta websockets en el puerto 8000.

Divulgación: Soy uno de los desarrolladores de HiveMQ

 10
Author: Dominik Obermaier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-23 21:12:47

IBM ha lanzado un cliente JavaScript basado en WebSockets. Es de código abierto sobre Eclipse Paho.

Repositorio Git: http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git /

Tutorial está aquí. https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/how_to_prog_javascript?lang=en

 5
Author: patrickwtl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-19 02:58:38

Hemos tenido una buena experiencia usando WSS, el WebSocket a TCP Gateway (para MQTT). Significa ejecutar un proceso separado, pero eso evita tener que cambiar la configuración de Apache. WSS también tiene soporte para TLS.

 3
Author: jpmens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-14 11:17:26

El blog de jpmens es un buen punto de partida para configurar mosquitto con la función websocket. Es El código javascript del cliente basado en la Ops está en github.

Este blog "Cómo ejecutar su servidor web y MQTT WebSockets broker en el mismo por" explica dos formas para el lado del servidor:

  • mosquitto con configuración http
  • apache + mod_websocket_mosquitto
 2
Author: minghua,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-06 14:06:00

No Apache, pero puede seguir esta guía para instalar lighttpd con mod_websocket,

Http://oriolrius.cat/blog/2013/09/25/server-send-push-notifications-to-client-browser-without-polling/

Pero para facilitar su uso, recomiendo encarecidamente HiveMQ, como recomienda @Dominik.

 1
Author: Matt.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-10 22:23:26

¿por Qué no nodejs + socket.io? Vienen con todos los gadgets incluidos (webscokets, pub / sub,webserver, mqtt broker...). SocketCluster es otro buen punto de partida.

 0
Author: giuseppe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-25 16:09:10

Este enlace ( Códigos de descarga) es útil. Descárguelo y modifique este archivo mosq-mqttws31.HTML. En lugar de la biblioteca de scripts java incrustada, utilice esta cdn

Https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js

Y la instanciación del cliente debe ser client = new Paho.MQTT.Client("test.mosquitto.org", 8080, "myclien256tiddd_" + parseInt (Math.aleatorio() * 100, 10));

 0
Author: rocksyne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-10 02:47:16