over - mqtt mosquitto websocket
¿Puede un navegador web usar MQTT? (8)
¿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.
Estamos considerando usar MQTT como el 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 habla MQTT?
El blog de jpmens es un buen punto de partida para instalar Mosquitto con la función websocket. El código javascript del cliente basado en Paho 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 configuracion http
- apache + mod_websocket_mosquitto
Este enlace ( Descargar códigos ) es útil. Descárgalo y modifica este archivo mosq-mqttws31.html. En lugar de la biblioteca de scripts java incrustada use este 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.random () * 100, 10));
Hemos tenido una buena experiencia con WSS , el WebSocket to 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.
IBM ha lanzado un cliente de JavaScript basado en WebSockets. Es de código abierto en Eclipse Paho.
Repositorio de Git: http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/
El tutorial está aquí. https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/how_to_prog_javascript?lang=en
No es Apache, pero puedes seguir esta guía para instalar lighttpd con mod_websocket,
pero para que sea fácil de usar, recomiendo HiveMQ, como recomienda @Dominik.
Para extender la respuesta de hardillbs:
Hay una tercera opción ahora:
HiveMQ admite websockets nativos sin la necesidad de ningún servidor web externo. Funciona perfectamente con el cliente Javascript de Eclipse Paho .
Si desea probarlo, el MQTTDashboard público (que utiliza HiveMQ debajo de las capillas) admite websockets en el puerto 8000.
Divulgación: Soy uno de los desarrolladores de HiveMQ.
Sí, como se menciona en el comentario de Steve-o MQTT a través de websockets es muy posible.
Hay 2 opciones en este momento.
- MQ 7.5 de IBM viene con soporte para websockets, puede encontrar detalles here .
- El agente de Mosquitto tiene un cliente javascript con un ejemplo ejecutándose here .
Para responder a su segunda pregunta, lighttpd tiene un módulo websockets que se puede usar para hacer el reenvío a un agente existente con detalles here .
No he podido encontrar nada para Apache que no necesite que escribas tu propia biblioteca para hacer el reenvío.