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 ...
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...
Weiterlesenkorrekte 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...
WeiterlesenVerstehen 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...
Weiterlesenmongo_orm Exception: fehlender bson-Schlüssel: publish_acl (Exception)
Wenn Sie Ihre Felddefinitionen in den mongo_orm-Dokumentenklassen erweitern, insbesondere mit eingebetteten Dokumenten, können Sie auf den folgenden Laufzeitfehler (!) stoßen: Exception: missing bson key: (Exception) Dies ist kein Fehler in Ihrem Code - Ihr Code wird ausgelöst, weil die Datenbankstruktur nicht so ist, wie er sie erwartet!...
WeiterlesenEinfü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,...
WeiterlesenElektronik-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...
WeiterlesenPaketierung 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....
Weiterlesenmongo_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...
WeiterlesenAvahi, wie man mehrere .local-Namen der gleichen IP zuweist
In manchen Situationen möchten Sie auf denselben Computer / dieselbe IP-Adresse mit unterschiedlichen .local-Namen zugreifen. Dies ist mit dem Avahi-Daemon möglich. Das Folgende ist für Ubuntu 18.04 Bionic Beaver geschrieben. Avahi installieren apt install avahi-daemon avahi-utils Avahi fügt automatisch den Hostnamen Ihres Computers zur .local Domain hinzu. Mein Computer heißt zum Beispiel...
Weiterlesen