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 temevent, 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).
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
logsoustatuszera 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.
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_CONNECTIONSouREALTIME_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.

