envoy websockets per route configuration, JavaScript test setup

In my article yesterday I discussed the configuration & test of envoy for proxying websockets at length. Today I would like to add some additional information. correct syntax for websocket upgrade per route You can enable websocket upgrade per route. No need to add it globally: – name: envoy.http_connection_manager    config:      #upgrade_configs:      #  – upgrade_type: websocket     …

Weiterlesen

envoy, docker and websockets – debugging and configuration

Websockets are an exciting technology, allowing you to upgrade a HTTP connection to a long-running persistent binary connection, which you can use to send bi-directional messages. As an aside, the MQTT protocol can be transported using websockets – which is the only (?) way for a JavaScript client delivered by the website, for instance. In…

Weiterlesen

correct way to instantiate Paho Client in JavaScript for wss (secure websocket)

The Paho documentation is unfortunately quite fragmented at the moment, and some links on Eclipse’s website do not work. Here are some working links (as of 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 And here’s a fantastic website by Steve: http://www.steves-internet-guide.com/using-javascript-mqtt-client-websockets/ There is an important breaking change in the Paho namespace, where you will run into trouble using…

Weiterlesen

mongo_orm Exception: missing bson key: publish_acl (Exception)

When you extend your field definitions in the mongo_orm document classes, specifically with embedded documents, you might run into the following runtime (!) error: Exception: missing bson key: <name> (Exception) This is not an error in your code – your code is raising, because the database structure is not as it expects it to be!…

Weiterlesen

Introduction to the SNAP protocol

Introduction S.N.A.P. is a protocol for communication between several connected hosts. It provides: · addressing · flags · ack/nak request · error detection (different error detection methods available) It can be run over different media, including RS485. It is optimized for a small footprint (limited computing, memory resources), but scaleable depending upon your needs. Basically,…

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

Packaging Python projects for Debian / Raspbian with dh-virtualenv

This article aims to explain some things to developers which don’t use Python a lot, and might struggle with some of the concepts otherwise. I highly recommend the lecture of the following article as an introduction to the concepts discussed here: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/ pypi.org pypi.org is an official repository of software for the Python programming language.…

Weiterlesen

mongo_orm custom name for collection

mongo_orm will automatically determine the name for your collection by using the Module and Class name, and appending an “s”. In cases where you want to name your collection, you can simply do this: class PapiTest < Mongo::ORM::Document     collection_name “Buster”     field test : String end get “/” do     pt = PapiTest.new     pt.test = “I want…

Weiterlesen

Avahi how to assign several .local names to same IP

In some situations you would like to access the same computer / IP using different .local names. This is possible using the Avahi daemon. The following is written for Ubuntu 18.04 Bionic Beaver. Install Avahi apt install avahi-daemon avahi-utils Avahi automatically adds your computer’s hostname to the .local Domain. For instance, my computer is called…

Weiterlesen