Connessioni e flussi
Queste azioni vanno per famiglie di due o tre: connettere, inviare, chiudere. La connessione resta aperta tra i riquadri, cosa che permette di intercalare altre chiamate nel mezzo.
Lo schema comune
Section titled “Lo schema comune”Un’azione di connessione ha due uscite:
| Uscita | Emissione |
|---|---|
connected | Un segnale, una volta sola, alla creazione della connessione |
message | Un’emissione per ogni messaggio ricevuto |
Porta un nome di connessione (connectionName). Le azioni di invio e
di chiusura designano poi quella connessione tramite il suo identificatore di
riquadro (connectionNodeId).
Lo schema classico:
Connessione MQTT ──connected──► Richiesta HTTP (attivare l’azione applicativa) └────────message─────► Assert (il messaggio atteso è arrivato) poi ──► Chiusura connessione MQTTWebSocket
Section titled “WebSocket”| Azione | Input | Output |
|---|---|---|
| Connessione WebSocket | — | connected, message (qualunque frame ricevuto) |
| Invio WebSocket | payload | — |
| Chiusura connessione WebSocket | — | — |
| Chiusura server WebSocket | — | — |
Si veda WebSocket.
Socket.IO
Section titled “Socket.IO”| Azione | Input | Output |
|---|---|---|
| Connessione Socket.IO | — | connected, una porta event:<name> per ogni evento dichiarato, e others |
| Invio Socket.IO | channel, payload | — |
| Chiusura connessione Socket.IO | — | — |
| Chiusura server Socket.IO | — | — |
È la sola azione di connessione le cui uscite sono configurabili:
dichiarando l’elenco degli eventi di interesse, ciascuno ottiene la propria
porta. Ogni evento non dichiarato arriva su others.
Si veda Socket.IO.
| Azione | Input | Output |
|---|---|---|
| Connessione MQTT | — | connected, message |
| Pubblicazione MQTT | payload | — |
| Chiusura connessione MQTT | — | — |
La connessione sottoscrive il topic della richiesta; l’invio pubblica con la QoS e l’opzione di ritenzione configurate. Si veda MQTT.
| Azione | Input | Output |
|---|---|---|
| Connessione SSE | — | connected, message |
| Chiusura connessione SSE | — | — |
Solo in ricezione: non esiste un’azione di invio. Si veda SSE.
| Azione | Input | Output |
|---|---|---|
| Connessione STOMP | — | connected, message |
| Invio STOMP | payload | — |
| Chiusura connessione STOMP | — | — |
La connessione emette il CONNECT e poi un SUBSCRIBE per ogni sottoscrizione
configurata; l’invio produce un frame SEND; la chiusura un DISCONNECT. Si veda
STOMP.
| Azione | Input | Output |
|---|---|---|
| Connessione AMQP | — | connected, message |
| Pubblicazione AMQP | payload | — |
| Chiusura connessione AMQP | — | — |
La connessione consuma la coda della richiesta (modalità subscribe); la
pubblicazione usa il suo exchange e la sua routing key. Si veda
AMQP.
| Azione | Input | Output |
|---|---|---|
| Sottoscrizione Redis | — | connected, message |
| Chiusura connessione Redis | — | — |
Per un comando singolo si usa Comando Redis, che è un’azione richiesta / risposta — si veda Richieste e composizione.
| Azione | Input | Output |
|---|---|---|
| Consumo Kafka | — | connected, message |
| Chiusura connessione Kafka | — | — |
Il consumo sottoscrive tramite il gruppo di consumer della richiesta. Per produrre si usa Produzione Kafka, un’azione singola. Si veda Kafka.
gRPC in streaming
Section titled “gRPC in streaming”| Azione | Input | Output |
|---|---|---|
| Connessione gRPC | — | connected, message |
| Invio gRPC | payload | — |
| Chiusura connessione gRPC | — | — |
Per le modalità server-stream, client-stream e bidirectional-stream:
l’invio ha senso soltanto per le ultime due, la chiusura effettua la
semi-chiusura lato client. Una chiamata unary si fa con Richiesta HTTP.
Si veda gRPC.
Subscription GraphQL
Section titled “Subscription GraphQL”| Azione | Input | Output |
|---|---|---|
| Sottoscrizione GraphQL | — | connected, message |
| Annullamento sottoscrizione GraphQL | — | — |
Si veda GraphQL.