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?

26
demandé sur fred basset 2013-04-17 01:22:11

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

  1. IBM MQ 7.5 est livré avec websockets de soutien, vous pouvez trouver des détails ici.
  2. 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.

15
répondu hardillb 2017-09-13 13:34:53

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

10
répondu Dominik Obermaier 2013-08-23 21:12:47
5
répondu patrickwtl 2013-10-19 02:58:38

Nous avons eu une bonne expérience à l'aide de WSS, le WebSocket pour TCP Passerelle (MQTT). Cela signifie exécuter un processus séparé, mais cela évite d'avoir à modifier la configuration D'Apache. WSS a également un soutien pour TLS.

3
répondu jpmens 2013-11-14 11:17:26

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
2
répondu minghua 2016-05-06 14:06:00

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 une utilisation facile je recommande fortement HiveMQ, comme @Dominik le recommande.

1
répondu Matt. 2013-11-10 22:23:26

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.

0
répondu giuseppe 2016-05-25 16:09:10

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));

0
répondu rocksyne 2016-12-10 02:47:16