Atualizações ao vivo

Abra um WebSocket para o mesmo host da API e o Fóir avisa sua aplicação quando um registro muda. Cada evento carrega o id do que mudou, e o SDK pode transformar isso em uma atualização do cache de consultas.

Um socket, a mesma chave

As subscriptions usam o protocolo graphql-ws no próprio host da API, com a mesma chave de API das suas consultas e mutations. As credenciais são enviadas quando a conexão abre: a chave e, quando há um, o token de acesso de um usuário logado. Um socket mantém até 32 subscriptions ativas.

Em que você pode se inscrever

recordChanged informa mudanças nos registros de um modelo. Outras subscriptions cobrem, para o chamador, as próprias notificações, o progresso de jobs em segundo plano e a execução de uma única operação. Observar um modelo exige a mesma permissão de leitura que ler esse modelo, e em um modelo cujos registros são privados para cada usuário o stream é filtrado para os registros do próprio chamador.

Eventos carregam ids

Um evento de registro nomeia a ação (criado, atualizado, publicado, despublicado ou excluído), o id do registro e seu modelo. Ele identifica o que mudou e deixa o conteúdo de fora, então você lê o registro pela API normal. Cada evento também tem um número de sequência, por projeto e em ordem de commit. Passe o maior que você já aplicou ao se inscrever e o servidor reenvia o que você perdeu a partir do seu log durável antes de continuar ao vivo.

O cliente de subscription do SDK

O SDK tipado dá a cada modelo um método onChange que retorna um handle para cancelar a inscrição. Ele abre o socket na primeira subscription e o fecha quando a última termina. Se a conexão cai, ele reconecta com exponential backoff e reenvia as subscriptions ativas.

O módulo live

@foir/sdk/live conecta o stream de mudanças ao seu cache de consultas e tem um binding para React. Uma edição busca de novo apenas as consultas que continham aquele registro, uma exclusão é aplicada em memória e uma criação é informada como uma contagem. Você adere por modelo.

Leia os detalhes

O guia de subscriptions cobre o endpoint, cada subscription e seus campos de evento, e o módulo live.