Un navigateur web peut-il utiliser MQTT?
nous envisageons D'utiliser MQTT comme protocole de messagerie sur un nouvel appareil que nous construisons. Nous aimerions aussi une interface web pour l'appareil. Est-ce que quelqu'un sait si vous pouvez implémenter une application client de navigateur (sans plugins supplémentaires) qui parle MQTT?
8 réponses
Oui, comme mentionné dans Steve-o commentaire MQTT via les websockets est très possible.
Il y a 2 options au moment
- IBM MQ 7.5 est livré avec websockets de soutien, vous pouvez trouver des détails ici.
- le Mosquitto broker a un client javascript avec un exempleici.
pour répondre à votre deuxième question, lighttpd dispose d'un module websockets qui peut être utilisé pour faire du renvoi vers un site existant. courtier avec détails ici.
Je n'ai rien pu trouver pour Apache qui ne nécessite pas que vous écriviez votre propre bibliothèque pour faire la redirection.
Pour prolonger hardillbs réponse:
il y a une troisième option maintenant:
HiveMQ supporte les websockets natifs sans avoir besoin d'un serveur web externe. Il fonctionne parfaitement avec le client Javascript Eclipse Paho.
Si vous voulez l'essayer, le public MQTTDashboard (qui utilise HiveMQ sous les hottes) supporte les websockets sur le port 8000.
Divulgation: je suis l'un des développeurs de HiveMQ
IBM a publié un client JavaScript basé sur WebSockets. C'est open-source sur Eclipse Paho.
dépôt Git: http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/
Tutoriel est ici. https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/how_to_prog_javascript?lang=en
blog par jpmens est un bon point de départ pour obtenir mosquitto setup avec la fonctionnalité websocket. Il est le code javascript du client basé sur Paho est sur github.
blog "Comment faire pour exécuter votre serveur web et MQTT WebSockets courtier sur le même por" explique de deux façons pour le côté serveur:
- Mosquito avec la configuration http
- apache+mod_websocket_mosquitto
pas Apache, mais vous pouvez suivre ce guide pour installer lighttpd avec mod_websocket,
mais pour une utilisation facile je recommande fortement HiveMQ, comme @Dominik le recommande.
Pourquoi pas nodejs
+ socket.io
? Ils viennent avec tous les gadgets inclus (webcokets, pub/sub, webserver,MQTT broker...).
SocketCluster est un autre bon point de départ.
Ce lien Télécharger les codes) est utile. Téléchargez-le et modifiez ce fichier mosq-mqttws31.HTML. Au lieu de la bibliothèque java script intégrée, utilisez ce cdn
https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js
et le client instanciation doit être client = new Ops.MQTT.Client("test.mosquitto.org", 8080,"myclien256tiddd_" + parseInt(Math.aléatoire() * 100, 10));