envoy che serve una risposta statica

Oltre al routing e al reindirizzamento è possibile servire risposte statiche con Envoy. In questo caso voglio servire una risposta vietata (403) route_config: virtual_hosts: - nome: picockpit domini: ["picockpit.local:443", "picockpit.local"] route: - match: { prefisso: "/demo" } direct_response: status: 403 body: inline_string: "Proibito". - match: {prefix: "/"} route: {cluster: target_picockpit} Può anche servire...

Weiterlesen

Python Paho MQTT client autofirmato certificati websockets, howto

Usare Paho in Python con websockets e certificati autofirmati per una connessione websocket https:// ha un paio di insidie, così sto affrontando questo con un po' di codice di esempio qui: 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 sovrascrive la mia configurazione

Situazione Hai modificato vernemq.conf, solo per scoprire che la tua configurazione viene sovrascritta da VerneMQ al prossimo avvio (usando il contenitore Docker ufficiale). In particolare, la sezione con gli ascoltatori alla fine del file è "forzata". Soluzione VerneMQ viene avviato utilizzando uno script (start_vernemq). Lo script può essere visto qui: https://github.com/vernemq/docker-vernemq/blob/master/bin/vernemq.sh Il...

Weiterlesen

envoy non si connette a VerneMQ per MQTT su websockets, codice di errore 503

Alcune rapide informazioni di base per chiunque si imbatta negli stessi problemi, e come debuggarli. Codice di errore 503 Questo è il codice di errore che sto ottenendo: Errore durante il WebSocket handshake: Codice di risposta inaspettato: 503. Imposta la registrazione di envoy su debug Ecco il mio docker-compose.yaml per envoy: versione: '3.7' servizi: envoy: build: context: ./ dockerfile: Dockerfile container_name:...

Weiterlesen

websockets di envoy per configurazione delle rotte, impostazione del test JavaScript

Nel mio articolo di ieri ho discusso a lungo la configurazione e il test di envoy per il proxy dei websockets. Oggi vorrei aggiungere alcune informazioni aggiuntive. sintassi corretta per l'aggiornamento dei websocket per rotta È possibile abilitare l'aggiornamento dei websocket per rotta. Non è necessario aggiungerlo globalmente: - nome: envoy.http_connection_manager config: #upgrade_configs: # - upgrade_type: websocket ...

Weiterlesen

envoy, docker e websockets - debug e configurazione

I websockets sono una tecnologia eccitante, che permette di aggiornare una connessione HTTP a una connessione binaria persistente di lunga durata, che si può usare per inviare messaggi bidirezionali. Per inciso, il protocollo MQTT può essere trasportato utilizzando websockets - che è l'unico (?) modo per un client JavaScript consegnato dal sito web, per esempio. In...

Weiterlesen

modo corretto di istanziare il client Paho in JavaScript per wss (secure websocket)

La documentazione Paho è purtroppo abbastanza frammentata al momento, e alcuni link sul sito web di Eclipse non funzionano. Ecco alcuni link funzionanti (al 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 Ed ecco un fantastico sito web di Steve: http://www.steves-internet-guide.com/using-javascript-mqtt-client-websockets/ C'è un importante cambiamento nello spazio dei nomi Paho, dove si incontrano problemi nell'uso...

Weiterlesen

Comprendere Erlang & Lua / Luerl per VerneMQ MongoDB auth_on_register hook

Il mio obiettivo / TLDR Il mio obiettivo con questo post sul blog è quello di spiegare come impostare mountpoint personalizzati per VerneMQ modificando lo script auth Lua di MongoDB (lua/auth/mongodb.lua). Impostare un mountpoint personalizzato è possibile con VerneMQ non solo impostando manualmente i mountpoint per specifici ascoltatori (ad esempio le porte), ma anche programmaticamente durante l'autorizzazione...

Weiterlesen

mongo_orm Eccezione: chiave bson mancante: publish_acl (eccezione)

Quando estendi le tue definizioni di campo nelle classi di documenti mongo_orm, in particolare con documenti incorporati, potresti incorrere nel seguente errore di runtime (!): Eccezione: chiave bson mancante: (Exception) Questo non è un errore nel tuo codice - il tuo codice sta sollevando, perché la struttura del database non è come si aspetta che sia!...

Weiterlesen

Introduzione al protocollo SNAP

Introduzione S.N.A.P. è un protocollo per la comunicazione tra diversi host collegati. Fornisce: - indirizzamento - bandiere - richiesta ack/nak - rilevamento degli errori (sono disponibili diversi metodi di rilevamento degli errori) Può essere eseguito su diversi supporti, inclusa la RS485. È ottimizzato per un piccolo ingombro (risorse di calcolo e di memoria limitate), ma scalabile a seconda delle vostre esigenze. Fondamentalmente,...

Weiterlesen