Debug di MQTT su websocket su Envoy 1.28.0

Ho migrato la nostra installazione di Envoy da Envoy 1.11.1 a 1.28.0 e ora sto usando anche SNI per selezionare il certificato corretto. Una parte importante di questa migrazione è l'aggiornamento della sintassi della configurazione di Envoy dall'API v2 all'API v3. L'aggiornamento è andato bene, tranne che per il nostro servizio MQTT basato su websocket...

Weiterlesen

TermiShell: una shell basata sul web per il Raspberry Pi (note di sviluppo)

Introduzione Nel corso dello sviluppo di PiCockpit, ho intenzione di aggiungere un terminale basato sul web chiamato TermiShell. Icona di TermiShell, di: Stephanie Harvey via unsplash.com TermiShell ti permetterà di accedere al tuo Raspberry Pi usando PiCockpit.com (e il picockpit-client) - nessuna applicazione aggiuntiva richiesta da entrambe le parti. Questo dovrebbe essere molto comodo,...

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

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