api.ApplicationRealtime(appID) abre um stream de Server-Sent Events e retorna um *rest.RealtimeStream. Itere sobre ele com stream.Next() até io.EOF.
Consumindo o stream
Sempre use defer stream.Close() — um stream não fechado mantém ocupado um dos slots de conexão da sua conta.
O stream emite dois tipos de frames:
- Eventos de sistema — mensagens do ciclo de vida da conexão:
REALTIME_CONNECTING, REALTIME_TIMEOUT, REALTIME_DISCONNECTED, REALTIME_RECONNECT e REALTIME_ERROR.
- Eventos
message — o payload da aplicação. Data é opaco para o SDK, geralmente JSON — faça o unmarshal você mesmo:
Limites de conexão
Uma única conta pode manter no máximo 5 conexões simultâneas abertas, e cada conexão dura até 10 minutos (seu TTL). Quando o TTL é atingido, o stream encerra com io.EOF — reconecte em um loop para continuar assinando.
Cancelamento
Anexe um context.Context com rest.WithContext para encerrar o stream de fora: