Skip to main content
api.apps.realtime(appId, { signal }) abre um stream ao vivo dos logs, do status e dos eventos de sistema de uma aplicação. É um async iterable: consuma-o com for await. Os exemplos usam o cliente api de Criando o cliente. appId é o id de uma das suas aplicações: api.account.me() lista todas.

Eventos

Todo evento tem event, data (o texto bruto do frame) e id.

O objeto status

Encerrando o stream

O loop termina sozinho quando:
  • o servidor fecha a conexão de forma limpa (cada conexão dura até 10 minutos);
  • o servidor envia REALTIME_DISCONNECTED;
  • você sai do loop com break;
  • você chama controller.abort() (o loop simplesmente termina, sem lançar erro).
Para continuar acompanhando além de 10 minutos, abra um novo stream quando o loop terminar.

Reconexão

Uma conexão perdida, ou o servidor delegando a reconexão ao cliente (REALTIME_RECONNECT), reabre o stream sozinho:
  • até 3 vezes seguidas; qualquer evento logs ou status zera a contagem;
  • cada reabertura ocorre pelo menos 5,5 s após a abertura anterior, para respeitar o ritmo da API de uma abertura a cada 5 segundos por aplicação.
Após 3 reconexões falhas, o loop lança um SquareCloudAPIError com NETWORK_ERROR.

Limites e erros

  • 5 conexões simultâneas por conta e 30 por aplicação, somando todos os usuários. Ultrapassar resulta em 429 REALTIME_MAX_CONNECTIONS ou REALTIME_MAX_CONNECTIONS_APP.
  • O status HTTP é verificado antes do streaming, então esses erros (e o 404 para uma aplicação desconhecida) são lançados na primeira iteração.
  • O timeout cobre apenas a abertura, até os headers da resposta chegarem. O stream em si não tem timeout.

Próximos passos

Snapshots

Faça backup e restaure aplicações e bancos de dados.

Referência da API de tempo real

O endpoint REST por trás deste stream.

Logs pela CLI

O mesmo stream pelo terminal.