WebSocket

trigger_websocket · trigger · Triggers · Disponibile · v1.0.0

Descrizione

Avvia il workflow in tempo reale ogni volta che arriva un messaggio su una connessione WebSocket. A differenza di trigger_webhook (endpoint HTTP che ASPETTA chiamate in ingresso), questo nodo si CONNETTE attivamente a uno stream remoto (ws:// o wss://) e resta in ascolto persistente: ideale per feed live dove il dato arriva push, non su richiesta. Differenza con i sibling: trigger_webhook = HTTP request/response in ingresso; trigger_websocket = socket persistente in uscita verso un server esterno; trigger_imap = polling email; trigger_db_change = polling tabella; trigger_cron = schedulato. Usa WebSocket quando la latenza conta e il provider espone uno stream (prezzi crypto/borsa, presence/chat, eventi IoT/MQTT-over-WS, notifiche broker, log streaming). Connessione: URL ws:// (plain) o wss:// (TLS, raccomandato in produzione). Header di connessione opzionali in JSON (es. Authorization Bearer, Cookie, Sec-WebSocket-Protocol via header) per autenticare l'handshake. Molti provider richiedono un messaggio di "subscribe" subito dopo l'apertura: impostalo in "Messaggio di subscribe" (JSON inviato on-open, anche dopo ogni riconnessione). Resilienza production-grade: riconnessione automatica con backoff esponenziale (1s→2s→4s… cap 30s) su chiusura o errore, keepalive ping/pong configurabile per non farsi droppare da proxy/load-balancer, e un budget anti-flood (max messaggi/sec) che evita di saturare il runtime se lo stream è troppo verboso. Output del trigger per ogni messaggio: { data } = payload già parsato come JSON quando possibile (altrimenti la stringa grezza), { raw } = testo originale del frame, { receivedAt } = timestamp ISO. Con "JSON Pointer di filtro" estrai/filtri un sottocampo (es. /type per branchare solo su certi eventi) senza un nodo aggiuntivo. Use case: (1) prezzi crypto live da exchange (Binance/Coinbase ws stream) → branch su soglia → notifica, (2) eventi chat/presence di un broker realtime → persistenza DB, (3) telemetria IoT su WebSocket → aggregazione → alert, (4) stream di eventi da un SaaS (es. trading, logistica) → sync verso CRM. Per stream ad altissima frequenza valuta un filtro server-side o il budget anti-flood.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
url
URL WebSocket
stringsi
wss://stream.example.com/ws
Endpoint a cui connettersi. wss:// = cifrato (TLS, raccomandato). ws:// = in chiaro (solo reti fidate). La connessione resta aperta e persistente finché il workflow è abilitato.
headersJson
Header di connessione (JSON)
JSON object/arrayno
{ "Authorization": "Bearer xxx" }
Header inviati durante l'handshake HTTP di upgrade. Oggetto JSON chiave→valore. Usali per autenticare (Bearer, Cookie, API key) o per negoziare un sub-protocollo. Vuoto = nessun header custom.
subscribeMessage
Messaggio di subscribe (on-open)
string (multiline)no
{ "op": "subscribe", "channel": "trades" }
Messaggio inviato SUBITO dopo l'apertura della connessione (e dopo ogni riconnessione). Tipicamente un JSON di subscribe richiesto dal provider per iniziare a ricevere lo stream. Vuoto = nessun invio.
jsonParse
Parsa i messaggi come JSON
booleannotrueOn (default): ogni frame viene parsato come JSON in "data" (fallback alla stringa grezza se non è JSON valido). Off: "data" resta sempre la stringa testuale del frame. "raw" contiene sempre il testo originale.
messagePointer
JSON Pointer di filtro/estrazione
stringno
/type oppure /data/price
RFC 6901 JSON Pointer. Se valorizzato, il run parte SOLO se il puntatore risolve a un valore non-undefined, e quel valore viene esposto come "matched". Es. "/type" filtra i messaggi che hanno un campo type. Vuoto = ogni messaggio fa partire un run.
reconnect
Riconnessione automatica
booleannotrueOn (default): su chiusura/errore riconnette con backoff esponenziale (1s→2s→4s… max 30s). Off: alla prima disconnessione il watcher si ferma finché non riabiliti/salvi il workflow.
pingIntervalSec
Keepalive ping (secondi)
numberno30Intervallo dei ping di keepalive per non farsi chiudere la connessione da proxy/load-balancer inattivi. 0 = disabilitato. Default 30s. Molti provider chiudono i socket idle dopo 60s.
maxMessagesPerSec
Budget anti-flood (messaggi/sec)
numberno20Tetto di run avviati al secondo da questo trigger. I messaggi oltre il budget vengono scartati (con log) per proteggere il runtime da stream troppo verbosi. 0 = nessun limite (usa con cautela).

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-trigger_websocket-1",
  "defId": "trigger_websocket",
  "label": "WebSocket",
  "config": {
    "url": "wss://stream.example.com/ws",
    "jsonParse": true,
    "reconnect": true,
    "pingIntervalSec": 30,
    "maxMessagesPerSec": 20
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare WebSocket?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi