web-dev-qa-db-fra.com

Un navigateur Web peut-il utiliser MQTT?

Nous envisageons d’utiliser MQTT comme protocole de messagerie sur un nouveau périphérique que nous construisons. Nous aimerions également une interface Web pour le périphérique. Est-ce que quelqu'un sait si vous pouvez implémenter une application cliente de navigateur (sans plugins supplémentaires) qui parle MQTT?

28
fred basset

Oui, comme mentionné dans le commentaire de Steve-o, MQTT via des websockets est très possible.

Il y a 2 options pour le moment

  1. IBM MQ 7.5 est livré avec le support Websockets, vous pouvez trouver plus de détails ici .
  2. Le courtier Mosquitto a un client javascript avec un exemple exécutant ici .

Pour répondre à votre deuxième question, lighttpd a un module websockets qui peut être utilisé pour transférer des données vers un courtier existant avec des détails ici .

Je n'ai trouvé aucun élément pour Apache qui ne nécessite pas que vous écriviez votre propre bibliothèque pour effectuer le transfert.

15
hardillb

Pour prolonger les hardillbs, répondez:

Il y a une troisième option maintenant: 

HiveMQ prend en charge les websockets natifs sans recourir à un serveur Web externe. Cela fonctionne parfaitement avec le client Javascript de Eclipse Paho .

Si vous voulez l'essayer, le public MQTTDashboard (qui utilise HiveMQ sous le capot) prend en charge les websockets sur le port 8000.

Divulgation: Je suis l'un des développeurs de HiveMQ

10
Dominik Obermaier

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/

Le didacticiel est ici . https://www.ibm.com/developerworks/community/blogs/c565c720-f84-4f63-873f-607d87787327/entry/how_to_prog_javascript?lang=en

5
patrickwtl

Nous avons eu une bonne expérience d’utilisation de WSS , le WebSocket vers la passerelle TCP (pour MQTT). Cela signifie exécuter un processus séparé, mais cela évite de devoir modifier la configuration d'Apache. WSS prend également en charge le protocole TLS.

3
jpmens

Le blog de jpmens est un bon point de départ pour configurer mosquitto avec la fonction websocket. Il est le code javascript du client basé sur Paho est sur github

Ce blog "Comment exécuter votre serveur Web et votre courtier MQTT WebSockets sur le même serveur" explique le serveur de deux manières: 

  • mosquitto avec configuration http
  • Apache + mod_websocket_mosquitto
2
minghua

Pas Apache, mais vous pouvez suivre ce guide pour installer lighttpd avec mod_websocket,

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

mais pour la facilité d'utilisation, je recommande fortement HiveMQ, comme le préconise @Dominik.

1
Matt.

Ce lien ( Codes de téléchargement ) est utile. Téléchargez-le et modifiez ce fichier mosq-mqttws31.html. Au lieu de la bibliothèque de scripts Java intégrée, utilisez ce cdn

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

et l'instanciation du client doit être client = new Paho.MQTT.Client ("test.mosquitto.org", 8080, "myclien256tiddd_" + parseInt (Math.random () * 100, 10));

0
rocksyne

Pourquoi pas nodejs + socket.io? Ils viennent avec tous les gadgets inclus (webscokets, pub/sub, serveur web, mqtt broker ...) . SocketCluster est un autre bon point de départ.

0
giuseppe