Débogage de MQTT sur websockets sur Envoy 1.28.0

J'ai migré notre installation Envoy de la version 1.11.1 à la version 1.28.0, et j'utilise maintenant aussi SNI pour sélectionner le bon certificat. Une grande partie de cette migration consiste à mettre à jour la syntaxe de la configuration d'Envoy de l'API v2 à l'API v3. La mise à jour s'est bien passée, sauf pour notre service MQTT basé sur websocket...

Weiterlesen

Paho MQTT Client (Javascript), Envoy, VerneMQ : débogage des déconnexions

Après avoir déployé picockpit sur mon serveur, un bug a été observé : le frontend web se déconnectait à intervalles très réguliers. Ce problème n'existait pas dans l'environnement de développement local. Les utilisateurs de picockpit ont signalé le même bug. Je l'ai débogué aujourd'hui et j'ai appliqué un correctif. Il s'avère que c'était un problème de timing. TL;DR comment...

Weiterlesen

VerneMQ comment déconnecter les clients de manière forcée par ligne de commande

Il existe une commande vmq-admin session show qui vous montrera les clients actuellement connectés : Malheureusement, cette sortie est tronquée pour une largeur totale de 80 caractères (peu importe le nombre qui rentrerait) et il n'y a actuellement aucune indication qu'elle l'est. Voir ce problème VerneMQ Github : https://github.com/vernemq/vernemq/issues/1200 Pour déconnecter les clients, vous avez besoin du client_id...

Weiterlesen

VerneMQ Connexion MQTT perdue (8) : AMQJS0008I Socket closed. différents points de montage

Dans ma configuration, je réécris les points de montage des clients à partir de ceux mis en place par les écouteurs vers des points de montage individuels en fonction du groupe de clients. L'idée derrière cela est une isolation parfaite de la multi-tenue sur le serveur. Les clients individuels de différents groupes ne sont donc pas en mesure de se voir les uns les autres, même lorsqu'ils s'abonnent à "#"...

Weiterlesen

Changement du point de montage sur le webhook auth_on_register pour VerneMQ

Il est possible de passer des modificateurs avec la valeur de retour "result" : "ok" de la valeur de retour de votre webhook pour VerneMQ. La documentation officielle de VerneMQ donne quelques exemples de la syntaxe. changer le point de montage Il est également possible de changer le point de montage, cependant le client_id doit apparemment être passé aussi ! J'ai soulevé une...

Weiterlesen

Longueur maximale des informations d'identification (nom d'utilisateur, mot de passe, clientid) dans MQTT v3.1.1

Le paquet CONNECT Le paquet de contrôle CONNECT MQTT contient toujours une charge utile. Il s'agit du premier paquet que le client doit envoyer au serveur après l'établissement de la connexion. Il ne peut être envoyé qu'une seule fois par le client, si un deuxième paquet CONNECT est envoyé, le serveur (broker) doit le traiter comme un protocole...

Weiterlesen

Débogage des problèmes de connexion / authentification VerneMQ pour la double authentification avec webhooks et vmq_diversity

TL;DR https://github.com/vernemq/vernemq/blob/master/apps/vmq_diversity/src/vmq_diversity_plugin.erl comprend une déclaration qui bloquera l'authentification / l'autorisation par tout autre canal si votre script Lua renvoie "false" : cela conduira à : au lieu d'essayer d'autres plugins, comme vous auriez pu le supposer ! Afin d'éviter ce problème, il suffit de ne rien retourner de votre script Lua, si vous ne voulez pas...

Weiterlesen

VerneMQ : econnrefused & Webhook exemple

Les webhooks activent les webhooks comme ceci dans votre vernemq.conf.local (.local lorsque l'exécution se fait sur docker, afin que les paramètres au bas du fichier persistent) : plugins.vmq_webhooks = on vmq_webhooks.js_auth_on_register.hook = auth_on_register vmq_webhooks.js_auth_on_register.endpoint = http://container_picockpit:1200/example/path Notez que si votre webhook n'est pas accessible (econnrefused), l'authentification basée sur la base de données échouera également ... ! Si vous obtenez des erreurs comme...

Weiterlesen

VerneMQ Docker écrase ma configuration

Situation Vous éditez vernemq.conf, pour constater que votre configuration est écrasée par VerneMQ au prochain démarrage (en utilisant le conteneur Docker officiel). Plus précisément, la section avec les listeners à la fin du fichier vous est "imposée". Solution VerneMQ est lancé à l'aide d'un script (start_vernemq). Le script peut être vu ici : https://github.com/vernemq/docker-vernemq/blob/master/bin/vernemq.sh Le...

Weiterlesen