MQTT Onderwerpboom Ontwerp beste praktijken, tips & voorbeelden

Generieke MQTT Achtergrond Met MQTT zijn verzender en ontvanger zich niet bewust van elkaar - de broker zorgt voor de berichtgeving. Hierdoor kunnen de berichten worden gescheiden in ruimte, tijd en intensiteit. De verzender kan verzenden met de snelheid die hij wil, en de tijd die hij wil. De ontvanger kan de berichten oppikken op...

Weiterlesen

VerneMQ: econnrefused & Webhook voorbeeld

Webhooks activeer webhooks als volgt in je vernemq.conf.local (.local wanneer je op docker draait, zodat de instellingen onderaan het bestand blijven bestaan): 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 Merk op dat als je webhook niet toegankelijk is (econnrefused), de db gebaseerde authenticatie ook zal falen ... ! Als u fouten krijgt zoals ...

Weiterlesen

envoy die een statisch antwoord serveert

Naast routing en redirecting kun je met Envoy ook statische antwoorden serveren. In dit geval wil ik een verboden antwoord serveren (403) route_config: virtual_hosts: - name: picockpit domains: ["picockpit.local:443", "picockpit.local"] routes: - match: { prefix: "/demo" } direct_response: status: 403 body: inline_string: "Verboden." - match: {prefix: "/"} route: {cluster: target_picockpit} Het kan ook dienen...

Weiterlesen

Python Paho MQTT client zelf-ondertekende certificaten websockets, howto

Het gebruik van Paho in Python met websockets en zelfondertekende certificaten voor een https:// websocketverbinding heeft een paar valkuilen, dus ik pak dit aan met wat voorbeeldcode hier: 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...

Weiterlesen

VerneMQ Docker overschrijft mijn configuratie

Situatie Je bewerkt vernemq.conf, alleen om te ontdekken dat je configuratie overschreven wordt door VerneMQ bij de volgende start (met behulp van de officiële Docker container). In het bijzonder, de sectie met de luisteraars aan het einde van het bestand wordt "opgedrongen". Oplossing VerneMQ wordt gestart met behulp van een script (start_vernemq). Het script kan hier worden bekeken: https://github.com/vernemq/docker-vernemq/blob/master/bin/vernemq.sh De...

Weiterlesen

envoy maakt geen verbinding met VerneMQ voor MQTT over websockets, foutcode 503

Wat achtergrondinformatie voor iedereen die tegen dezelfde problemen aanloopt, en hoe ze te debuggen. Foutcode 503 Dit is de foutcode die ik krijg: Fout tijdens WebSocket handshake: Onverwachte antwoordcode: 503. Stel envoy logging in op debug Hier is mijn docker-compose.yaml voor envoy: version: '3.7' services: envoy: build: context: ./ dockerfile: Dockerfile container_name:...

Weiterlesen

envoy websockets per route configuratie, JavaScript test opzet

In mijn artikel van gisteren heb ik de configuratie & test van envoy voor het proxying van websockets uitvoerig besproken. Vandaag wil ik graag wat extra informatie toevoegen. juiste syntax voor websocket upgrade per route Je kunt websocket upgrade per route inschakelen. Je hoeft het niet globaal toe te voegen: - name: envoy.http_connection_manager config: #upgrade_configs: # - upgrade_type: websocket ...

Weiterlesen

envoy, docker en websockets - debuggen en configuratie

Websockets zijn een opwindende technologie, waarmee je een HTTP verbinding kunt upgraden naar een langlopende persistente binaire verbinding, die je kunt gebruiken om bi-directionele berichten te versturen. Terzijde, het MQTT protocol kan getransporteerd worden met websockets - wat de enige (?) manier is voor bijvoorbeeld een JavaScript client geleverd door de website. In...

Weiterlesen

juiste manier om Paho Client in JavaScript te instantiëren voor wss (secure websocket)

De Paho-documentatie is op dit moment helaas nogal gefragmenteerd, en sommige links op de website van Eclipse werken niet. Hier zijn enkele werkende links (vanaf 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 En hier is een fantastische website van Steve: http://www.steves-internet-guide.com/using-javascript-mqtt-client-websockets/ Er is een belangrijke breukwijziging in de Paho-naamruimte, waar je in de problemen komt met het gebruik van...

Weiterlesen

Inzicht in Erlang & Lua / Luerl voor VerneMQ MongoDB auth_on_register haak

Mijn doel / TLDR Mijn doel met deze blog post is om uit te leggen hoe je aangepaste mountpoints voor VerneMQ in te stellen door het wijzigen van de meegeleverde MongoDB auth Lua script (lua/auth/mongodb.lua). Het instellen van een custom mountpoint is mogelijk met VerneMQ, niet alleen door het handmatig instellen van mountpoints voor specifieke listeners (bijv. poorten), maar ook programmatisch tijdens autorisatie in uw...

Weiterlesen