Eventos de watchlist
Um membro que faz signin pode indicar quais membros quer acompanhar, e a conexão é notificada quando qualquer um deles fica online ou offline. Esse é o recurso inteiro: nenhum canal por relacionamento, sem polling, uma lista só.
Eventos de watchlist dependem do signin de membro. A identidade que seu backend assina no signin pode conter um array watchlist de ids de membros; quando a configuração watchlist_events do app está ativada, a conexão recebe eventos online e offline exatamente para esses ids. Um membro está online enquanto tiver pelo menos uma conexão com signin ativo: a primeira conexão dispara online, o fechamento da última dispara offline, e abas intermediárias não disparam nada, a mesma contagem que os canais de presença usam.
Ative o recurso
Ative Watchlist events nas configurações do app na página Realtime → Apps, ou defina watchlist_events como true no app pela API do Realtime. As conexões capturam a configuração ao se conectar, então ative antes de publicar os clientes que dependem dela.
Coloque a watchlist na identidade assinada
A watchlist faz parte de member_data, a string JSON que seu endpoint de autenticação de membro assina. Adicione os ids junto à identidade:
Exemplo de código
{
"member_id": "u_1",
"member_info": { "name": "Ada" },
"watchlist": ["u_2", "u_3"]
}Como a lista está dentro da identidade assinada, seu endpoint de autenticação decide quem um membro pode acompanhar: monte o array a partir dos seus próprios dados (contatos, equipe) em vez de aceitar um que o cliente envia, ou qualquer membro poderá acompanhar qualquer outro. Uma watchlist comporta até 100 ids; uma lista mais longa é truncada para os primeiros 100 e a conexão recebe o erro 4302 indicando os ids que foram aceitos.
A lista é capturada no signin e vale por toda a vida da conexão. Para alterá-la, faça seu endpoint assinar a nova lista: o cliente faz signin novamente de forma automática a cada reconexão, então a próxima conexão segue a lista atualizada e recebe os status atuais.
Escute no navegador
Vincule em bird.member.watchlist. O status atual de toda a lista chega logo após o signin, para que você possa exibir quem está online antes de qualquer mudança de estado:
Exemplo de código
await bird.signin();
bird.member.watchlist.bind("online", (memberIds) => {
console.log("online:", memberIds);
});
bird.member.watchlist.bind("offline", (memberIds) => {
console.log("offline:", memberIds);
});Cada evento traz os ids de membro a que se aplica. A entrega inicial após o signin cobre a lista completa, agrupada por status; depois disso, os eventos chegam quando membros cruzam entre zero e uma conexão.
Watchlist ou presença?
Canais de presença respondem "who is in this room with me": todos assinam o mesmo canal e veem a mesma lista de membros. Uma watchlist responde "are the people I care about online anywhere": cada membro acompanha sua própria lista, e as pessoas sendo acompanhadas não precisam fazer nada além de fazer signin. Uma lista de contatos, um indicador de disponibilidade de agente ou um nudge de "your contact just came online" são trabalho de watchlist; um roster de sala compartilhada é presença.
Próximos passos
- Encerrando conexões de membro cobre o signin e o contrato de identidade em que a watchlist se apoia.
- Canais de presença para participação em salas compartilhadas em vez de listas de acompanhamento pessoais.
- Enviando eventos para um membro é a outra superfície endereçada a membros.
Recursos relacionados
Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.
Explore a funcionalidadeRealtimeSiga o percurso de aprendizagemBuild your first integrationGuia de implementaçãoSend your first realtime event
Experimente na prática e obtenha um resumo de implementação