Subscriptions de dados e atualizações ao vivo
Última atualização: 16 de julho de 2026
Qualquer consulta de dados pode ser assinada. Isso replica os dados do servidor para o cliente exatamente no formato definido pela consulta. A primeira entrega é o objeto de dados completo. Depois disso, quando os dados mudam no servidor, um Delta é entregue imediatamente a todos os clientes inscritos.
Use Subscriptions para manter uma cópia local dos dados do servidor sempre em dia por meio de Deltas reativos, com o tráfego de sincronização otimizado por JSONPatch.
Criar uma Subscription
Uma Subscription é criada sobre um objeto de consulta.
var player = PlayServ.Model<Player>().Key(playerId);
var subscription = player.Listen();
Modelo de entrega
A primeira mensagem entrega o objeto completo no formato da consulta.
Quando os dados mudam no servidor, os Deltas são entregues sem atraso a todos os listeners. As mudanças são aplicadas automaticamente ao objeto de dados local. Se você precisa de controle sobre esse processo, assine o Event Update.
Observar as atualizações explicitamente
Use Wait<Update> na Subscription para tratar as atualizações quando os dados mudarem.
subscription.Wait<Update>(e => {
// Called whenever the data is updated
// e.New — the new version of the data
// e.Old — the previous version of the data
});
Otimização de transporte: JSONPatch
Para otimizar o tráfego durante a sincronização, o PlayServ usa JSONPatch. O JSONPatch descreve as mudanças que devem ser aplicadas a um objeto de dados. Mesmo que o banco armazene os dados como key=value, a abordagem continua eficaz.
Cancelar uma Subscription
Para cancelar uma Subscription, chame Stop().
subscription.Stop();
Restauração de Subscriptions após dessincronização da Session
Depois de uma dessincronização da Session — quando a Session entra em Offline ou Recovering e volta para Active — todas as Subscriptions que estavam ativas no momento da dessincronização precisam ser restauradas. O SDK cuida disso automaticamente.
Próximos passos
- Data Mutation & Model Extending — grave as mudanças de dados de volta no servidor
- Query Language & Data Retrieval — formatos de consulta,
Key/Where/With, restrições apenas por expressão - Session Lifecycle & States — os estados de Session
Offline,RecoveringeActivereferenciados pela regra de restauração