Połączenia i strumienie
Te akcje występują w rodzinach po dwie lub trzy: połączenie, wysyłanie, zamknięcie. Połączenie pozostaje otwarte pomiędzy blokami, co pozwala przeplatać w środku inne wywołania.
Wspólny wzorzec
Section titled “Wspólny wzorzec”Akcja połączenia ma dwa wyjścia:
| Wyjście | Emisja |
|---|---|
connected | Sygnał, jednorazowo, w momencie nawiązania połączenia |
message | Jedna emisja na każdą odebraną wiadomość |
Akcja nosi nazwę połączenia (connectionName). Akcje wysyłania i zamknięcia
wskazują następnie to połączenie przez identyfikator jego bloku
(connectionNodeId).
Klasyczny wzorzec:
Połączenie MQTT ──connected──► Żądanie HTTP (wyzwolenie akcji biznesowej) └─────────message─────► Assert (oczekiwana wiadomość dotarła) następnie ──► Zamknięcie połączenia MQTTWebSocket
Section titled “WebSocket”| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Połączenie WebSocket | — | connected, message (każda odebrana ramka) |
| Wysyłanie WebSocket | payload | — |
| Zamknięcie połączenia WebSocket | — | — |
| Zamknięcie serwera WebSocket | — | — |
Zob. WebSocket.
Socket.IO
Section titled “Socket.IO”| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Połączenie Socket.IO | — | connected, po jednym porcie event:<name> na każde zadeklarowane zdarzenie, oraz others |
| Wysyłanie Socket.IO | channel, payload | — |
| Zamknięcie połączenia Socket.IO | — | — |
| Zamknięcie serwera Socket.IO | — | — |
To jedyna akcja połączenia, której wyjścia są konfigurowalne: wystarczy
zadeklarować listę interesujących zdarzeń, a każde z nich otrzyma własny port.
Każde niezadeklarowane zdarzenie dociera na others.
Zob. Socket.IO.
| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Połączenie MQTT | — | connected, message |
| Publikacja MQTT | payload | — |
| Zamknięcie połączenia MQTT | — | — |
Połączenie subskrybuje temat zapisany w żądaniu; wysyłanie publikuje ze skonfigurowanym poziomem QoS i opcją zachowania wiadomości. Zob. MQTT.
| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Połączenie SSE | — | connected, message |
| Zamknięcie połączenia SSE | — | — |
Tylko odbiór: nie ma akcji wysyłania. Zob. SSE.
| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Połączenie STOMP | — | connected, message |
| Wysyłanie STOMP | payload | — |
| Zamknięcie połączenia STOMP | — | — |
Połączenie wysyła ramkę CONNECT, a następnie po jednej ramce SUBSCRIBE na
każdą skonfigurowaną subskrypcję; wysyłanie tworzy ramkę SEND, a zamknięcie —
DISCONNECT. Zob. STOMP.
| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Połączenie AMQP | — | connected, message |
| Publikacja AMQP | payload | — |
| Zamknięcie połączenia AMQP | — | — |
Połączenie konsumuje kolejkę zapisaną w żądaniu (tryb subscribe); publikacja
korzysta z jego exchange’u i klucza routingu. Zob.
AMQP.
| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Subskrypcja Redis | — | connected, message |
| Zamknięcie połączenia Redis | — | — |
Do wykonania pojedynczego polecenia służy Polecenie Redis — akcja typu żądanie / odpowiedź, opisana na stronie Żądania i kompozycja.
| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Konsumpcja Kafka | — | connected, message |
| Zamknięcie połączenia Kafka | — | — |
Konsumpcja subskrybuje przez grupę konsumentów zapisaną w żądaniu. Do publikowania służy Produkcja Kafka, akcja pojedyncza. Zob. Kafka.
gRPC w trybie strumieniowym
Section titled “gRPC w trybie strumieniowym”| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Połączenie gRPC | — | connected, message |
| Wysyłanie gRPC | payload | — |
| Zamknięcie połączenia gRPC | — | — |
Dotyczy trybów server-stream, client-stream i bidirectional-stream:
wysyłanie ma sens tylko w dwóch ostatnich, a zamknięcie wykonuje półzamknięcie
po stronie klienta. Wywołanie unary realizuje się akcją Żądanie HTTP.
Zob. gRPC.
Subskrypcje GraphQL
Section titled “Subskrypcje GraphQL”| Akcja | Wejścia | Wyjścia |
|---|---|---|
| Subskrypcja GraphQL | — | connected, message |
| Anulowanie subskrypcji GraphQL | — | — |
Zob. GraphQL.