Ligações e fluxos
Estas ações agrupam-se em famílias de duas ou três: ligar, enviar, fechar. A ligação permanece aberta entre as caixas, o que permite entrelaçar outras chamadas pelo meio.
O princípio comum
Section titled “O princípio comum”Uma ação de ligação tem duas saídas:
| Saída | Emissão |
|---|---|
connected | Um sinal, uma vez, quando a ligação é estabelecida |
message | Uma emissão por cada mensagem recebida |
Tem um nome de ligação (connectionName). As ações de envio e de fecho
designam depois essa ligação pelo identificador da respetiva caixa
(connectionNodeId).
O encadeamento clássico:
Ligação MQTT ──connected──► Pedido HTTP (acionar a ação de negócio) └────────message─────► Assert (a mensagem esperada chegou) depois ──► Fecho da ligação MQTTWebSocket
Section titled “WebSocket”| Ação | Entradas | Saídas |
|---|---|---|
| Ligação WebSocket | — | connected, message (qualquer trama recebida) |
| Envio WebSocket | payload | — |
| Fecho da ligação WebSocket | — | — |
| Fecho do servidor WebSocket | — | — |
Consulte WebSocket.
Socket.IO
Section titled “Socket.IO”| Ação | Entradas | Saídas |
|---|---|---|
| Ligação Socket.IO | — | connected, uma porta event:<name> por cada evento declarado, e others |
| Envio Socket.IO | channel, payload | — |
| Fecho da ligação Socket.IO | — | — |
| Fecho do servidor Socket.IO | — | — |
É a única ação de ligação cujas saídas são configuráveis: declare a lista
dos eventos que lhe interessam e cada um recebe a sua porta. Qualquer evento não
declarado chega a others.
Consulte Socket.IO.
| Ação | Entradas | Saídas |
|---|---|---|
| Ligação MQTT | — | connected, message |
| Publicação MQTT | payload | — |
| Fecho da ligação MQTT | — | — |
A ligação subscreve o tópico do pedido; o envio publica com a QoS e a opção de retenção configuradas. Consulte MQTT.
| Ação | Entradas | Saídas |
|---|---|---|
| Ligação SSE | — | connected, message |
| Fecho da ligação SSE | — | — |
Apenas em receção: não existe ação de envio. Consulte SSE.
| Ação | Entradas | Saídas |
|---|---|---|
| Ligação STOMP | — | connected, message |
| Envio STOMP | payload | — |
| Fecho da ligação STOMP | — | — |
A ligação emite o CONNECT e depois um SUBSCRIBE por cada subscrição
configurada; o envio produz uma trama SEND; o fecho, um DISCONNECT. Consulte
STOMP.
| Ação | Entradas | Saídas |
|---|---|---|
| Ligação AMQP | — | connected, message |
| Publicação AMQP | payload | — |
| Fecho da ligação AMQP | — | — |
A ligação consome a fila do pedido (modo subscribe); a publicação utiliza o
respetivo exchange e a sua chave de encaminhamento. Consulte
AMQP.
| Ação | Entradas | Saídas |
|---|---|---|
| Subscrição Redis | — | connected, message |
| Fecho da ligação Redis | — | — |
Para um comando isolado, existe Comando Redis, que é uma ação de pedido / resposta — consulte Pedidos e composição.
| Ação | Entradas | Saídas |
|---|---|---|
| Consumo Kafka | — | connected, message |
| Fecho da ligação Kafka | — | — |
O consumo subscreve através do grupo de consumidores do pedido. Para produzir, existe Produção Kafka, uma ação isolada. Consulte Kafka.
gRPC em fluxo
Section titled “gRPC em fluxo”| Ação | Entradas | Saídas |
|---|---|---|
| Ligação gRPC | — | connected, message |
| Envio gRPC | payload | — |
| Fecho da ligação gRPC | — | — |
Para os modos server-stream, client-stream e bidirectional-stream: o envio
só faz sentido nos dois últimos e o fecho realiza o meio-fecho do lado do
cliente. Uma chamada unary faz-se com Pedido HTTP.
Consulte gRPC.
Subscrições GraphQL
Section titled “Subscrições GraphQL”| Ação | Entradas | Saídas |
|---|---|---|
| Subscrição GraphQL | — | connected, message |
| Cancelar subscrição GraphQL | — | — |
Consulte GraphQL.