Maximale Länge der Anmeldeinformationen (Benutzername, Passwort, clientid) in MQTT v3.1.1
Das CONNECT-Paket Das MQTT CONNECT Control-Paket enthält immer eine Nutzlast. Es ist das erste Paket, das der Client nach dem Aufbau der Verbindung an den Server senden muss. Es kann nur einmal vom Client gesendet werden, wenn ein zweites CONNECT-Paket gesendet wird, muss der Server (Broker) es als Protokoll verarbeiten...
WeiterlesenDebugging von VerneMQ-Verbindungs-/Authentifizierungsproblemen bei dualer Authentifizierung mit Webhooks und vmq_diversity
TL;DR https://github.com/vernemq/vernemq/blob/master/apps/vmq_diversity/src/vmq_diversity_plugin.erl enthält eine Anweisung, die die Authentifizierung / Autorisierung über andere Kanäle blockiert, wenn Ihr Lua-Skript "false" zurückgibt: führt zu: statt andere Plugins zu versuchen, wie Sie vielleicht angenommen haben! Um dieses Problem zu vermeiden, geben Sie einfach nichts von Ihrem Lua-Skript zurück, wenn Sie das nicht wollen...
WeiterlesenVerneMQ: econnrefused & Webhook Beispiel
Webhooks aktivieren Sie wie folgt in Ihrer vernemq.conf.local (.local, wenn Sie auf Docker laufen, so dass die Einstellungen am Ende der Datei erhalten bleiben): 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 Beachten Sie, dass die db-basierte Authentifizierung ebenfalls fehlschlägt, wenn Ihr Webhook nicht erreichbar ist (econnrefused) ... ! Wenn Sie Fehler erhalten wie...
WeiterlesenAbgesandter, der eine statische Antwort liefert
Neben Routing und Redirecting können Sie mit Envoy auch statische Antworten ausliefern. In diesem Fall möchte ich eine verbotene Antwort (403) ausliefern route_config: virtual_hosts: - name: picockpit domains: ["picockpit.local:443", "picockpit.local"] routes: - match: { prefix: "/demo" } direct_response: status: 403 body: inline_string: "Forbidden". - match: {Präfix: "/"} route: {cluster: target_picockpit} Es kann auch dazu dienen...
WeiterlesenPython Paho MQTT-Client selbstsignierte Zertifikate Websockets, howto
Die Verwendung von Paho in Python mit Websockets und selbstsignierten Zertifikaten für eine https:// Websocket-Verbindung birgt einige Fallstricke, die ich hier mit etwas Beispielcode angehe: import ssl import time import paho.mqtt.client as mqtt class PCPMQTTClient: def on_connect(self, client, userdata, flags, rc): self.connection_status = rc if rc == 0: self.connected_flag = True self.connection_error_flag...
WeiterlesenVerneMQ Docker überschreibt meine Konfiguration
Situation Sie bearbeiten die Datei vernemq.conf und müssen feststellen, dass Ihre Konfiguration beim nächsten Start (mit dem offiziellen Docker-Container) von VerneMQ überschrieben wird. Insbesondere der Abschnitt mit den Listenern am Ende der Datei wird Ihnen "aufgezwungen". Lösung VerneMQ wird mit einem Skript (start_vernemq) gestartet. Das Skript kann hier eingesehen werden: https://github.com/vernemq/docker-vernemq/blob/master/bin/vernemq.sh Das...
Weiterlesenenvoy verbindet sich nicht mit VerneMQ für MQTT über Websockets, Fehlercode 503
Einige kurze Hintergrundinformationen für alle, die auf dieselben Probleme stoßen, und wie man sie behebt. Fehlercode 503 Dies ist der Fehlercode, den ich erhalte: Fehler beim WebSocket-Handshake: Unerwarteter Antwortcode: 503. Set envoy logging to debug Hier ist meine docker-compose.yaml für envoy: version: '3.7' services: envoy: build: context: ./ dockerfile: Dockerfile container_name:...
Weiterlesenenvoy Websockets per Routenkonfiguration, JavaScript-Testaufbau
In meinem gestrigen Artikel habe ich die Konfiguration und den Test von envoy für das Proxying von Websockets ausführlich besprochen. Heute möchte ich einige zusätzliche Informationen hinzufügen. korrekte Syntax für Websocket-Upgrade pro Route Sie können Websocket-Upgrade pro Route aktivieren. Sie müssen es nicht global hinzufügen: - name: envoy.http_connection_manager config: #upgrade_configs: # - upgrade_type: websocket ...
Weiterlesenenvoy, Docker und Websockets - Fehlersuche und Konfiguration
Websockets sind eine aufregende Technologie, die es Ihnen ermöglicht, eine HTTP-Verbindung zu einer dauerhaften binären Verbindung auszubauen, die Sie zum Senden bidirektionaler Nachrichten verwenden können. Nebenbei bemerkt kann das MQTT-Protokoll über Websockets transportiert werden - die einzige (?) Möglichkeit für einen JavaScript-Client, der von der Website ausgeliefert wird, zum Beispiel. In...
Weiterlesen