Eventos de watchlist
Un miembro que inicia sesión puede indicar a qué miembros quiere seguir, y la conexión recibe aviso cuando cualquiera de ellos se conecta o se desconecta. Esa es toda la funcionalidad: sin un canal por relación, sin polling, una sola lista.
Los eventos de watchlist se apoyan en el inicio de sesión de miembros. La identidad que tu backend firma en el inicio de sesión puede incluir un array watchlist de ids de miembros; cuando el ajuste watchlist_events de la app está activado, la conexión recibe eventos de conexión y desconexión exactamente para esos ids. Un miembro está en línea mientras tenga al menos una conexión autenticada: la primera conexión dispara online, cerrar la última dispara offline, y las pestañas intermedias no disparan nada, el mismo conteo que usan los canales de presencia.
Actívalos
Activa Watchlist events en los ajustes de la app en la página Realtime → Apps, o establece watchlist_events a true en la app a través de la API de Realtime. Las conexiones toman el ajuste cuando se conectan, así que actívalo antes de publicar los clientes que dependen de él.
Incluye la watchlist en la identidad firmada
La watchlist forma parte de member_data, la cadena JSON que tu endpoint de autenticación de miembros firma. Añade los ids junto a la identidad:
Ejemplo de código
{
"member_id": "u_1",
"member_info": { "name": "Ada" },
"watchlist": ["u_2", "u_3"]
}Como la lista está dentro de la identidad firmada, tu endpoint de autenticación decide a quién puede seguir un miembro: construye el array a partir de tus propios datos (sus contactos, su equipo) en lugar de aceptar uno que el cliente envíe, o cualquier miembro podrá seguir a cualquier otro. Una watchlist admite hasta 100 ids; una lista más larga se trunca a los primeros 100 y la conexión recibe el error 4302 indicando los ids que se aceptaron.
La lista se captura en el inicio de sesión y se mantiene durante toda la vida de la conexión. Para cambiarla, haz que tu endpoint firme la nueva lista: el cliente inicia sesión de nuevo automáticamente en cada reconexión, así que la siguiente conexión sigue la lista actualizada y recibe sus estados actuales.
Escucha en el navegador
Bindea en bird.member.watchlist. El estado actual de toda la lista llega justo después del inicio de sesión, así que puedes pintar quién está en línea antes de que alguien cambie de estado:
Ejemplo 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 incluye los ids de miembros a los que aplica. La entrega inicial tras el inicio de sesión cubre la lista completa, agrupada por estado; después, los eventos llegan cuando los miembros pasan entre cero y una conexión.
¿Watchlist o presencia?
Los canales de presencia responden a "who is in this room with me": todos se suscriben al mismo canal y ven la misma lista de miembros. Una watchlist responde a "are the people I care about online anywhere": cada miembro sigue su propia lista, y las personas observadas no necesitan hacer nada más allá de iniciar sesión. Una lista de contactos, un indicador de disponibilidad de agentes o un aviso de "your contact just came online" son trabajo de watchlist; un roster de sala compartida es presencia.
Próximos pasos
- Conexiones de miembros con terminación cubre el inicio de sesión y el contrato de identidad en el que viaja la watchlist.
- Canales de presencia para membresía de sala compartida en lugar de listas de seguimiento personales.
- Enviar eventos a un miembro es la otra superficie dirigida a miembros.
Recursos relacionados
Continúa con la documentación, guías y ejemplos sobre este tema. Los recursos están en inglés.
Explorar la funcionalidadRealtimeSeguir la ruta de aprendizajeBuild your first integrationGuía de implementaciónSend your first realtime event
Prueba el ejercicio y obtén un resumen de implementación