envoy 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:...

Weiterlesen

envoy 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 ...

Weiterlesen

envoy, 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

korrekte Instanziierung des Paho Client in JavaScript für wss (secure websocket)

Die Paho-Dokumentation ist im Moment leider ziemlich fragmentiert, und einige Links auf der Eclipse-Website funktionieren nicht. Hier sind einige funktionierende Links (Stand 05/2019): https://www.eclipse.org/paho/clients/js/ https://www.eclipse.org/paho/files/jsdoc/index.html https://github.com/eclipse/paho.mqtt.javascript Und hier ist eine fantastische Website von Steve: http://www.steves-internet-guide.com/using-javascript-mqtt-client-websockets/ Es gibt eine wichtige Änderung im Paho-Namensraum, bei der Sie Probleme bekommen werden, wenn Sie...

Weiterlesen

Verstehen von Erlang & Lua / Luerl für VerneMQ MongoDB auth_on_register hook

Mein Ziel / TLDR Mein Ziel mit diesem Blogpost ist es, zu erklären, wie man benutzerdefinierte Mountpoints für VerneMQ setzt, indem man das mitgelieferte MongoDB auth Lua Skript (lua/auth/mongodb.lua) modifiziert. Das Setzen eines benutzerdefinierten Mountpoints ist bei VerneMQ nicht nur durch das manuelle Setzen von Mountpoints für bestimmte Listener (z.B. Ports) möglich, sondern auch programmatisch während der Autorisierung in...

Weiterlesen

Einführung in das SNAP-Protokoll

Einführung S.N.A.P. ist ein Protokoll für die Kommunikation zwischen mehreren verbundenen Hosts. Es bietet: - Adressierung - Flags - ack/nak-Abfrage - Fehlererkennung (verschiedene Fehlererkennungsmethoden verfügbar) Es kann über verschiedene Medien, einschließlich RS485, betrieben werden. Es ist für einen kleinen Footprint optimiert (begrenzte Rechen- und Speicherressourcen), aber je nach Bedarf skalierbar. Grundsätzlich,...

Weiterlesen

Elektronik-Gehäuse & Platinenabmessungen Standards

Abmessungen Raspberry Pi Ein Raspberry Pi 3B+ hat, als Vergleich, die Abmessungen: 85 mm x 56 mm für die Basisplatine. (USB & LAN, sowie andere Stecker ragen teilweise über die Platine hinaus). Hutschiene / DIN-Schiene Hutschiene: TS35, U-förmiges Profil. Standarisierte Befestigungsschiene für Gehäuse, Racks, Schaltschränke, u.s.w. Sie wird vielfach in der Industrie eingesetzt. Einer der...

Weiterlesen

Paketierung von Python-Projekten für Debian / Raspbian mit dh-virtualenv

Dieser Artikel zielt darauf ab, Entwicklern, die Python nicht so häufig verwenden, einige Dinge zu erklären, da sie sonst mit einigen Konzepten Schwierigkeiten haben könnten. Ich empfehle dringend die Lektüre des folgenden Artikels als Einführung in die hier besprochenen Konzepte: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/ pypi.org pypi.org ist ein offizielles Repository mit Software für die Programmiersprache Python....

Weiterlesen

mongo_orm benutzerdefinierter Name für die Sammlung

mongo_orm bestimmt automatisch den Namen für Ihre Sammlung, indem es den Modul- und Klassennamen verwendet und ein "s" anhängt. In Fällen, in denen Sie Ihre Sammlung benennen möchten, können Sie einfach Folgendes tun: class PapiTest < Mongo::ORM::Document collection_name "Buster" field test : String end get "/" do pt = PapiTest.new pt.test = "Ich möchte...

Weiterlesen