Eventi watchlist
Un membro che si autentica può indicare i membri che vuole seguire, e la connessione viene notificata quando uno di loro va online o offline. La funzionalità è tutta qui: nessun canale per relazione, nessun polling, una sola lista.
Gli eventi watchlist si appoggiano al signin del membro. L'identità che il tuo backend firma al signin può contenere un array watchlist di id membro; quando l'impostazione watchlist_events dell'app è attiva, la connessione riceve eventi online e offline esattamente per quegli id. Un membro è online finché ha almeno una connessione autenticata: la prima connessione genera online, la chiusura dell'ultima genera offline, e le schede intermedie non generano nulla, lo stesso conteggio usato dai canali presence.
Attivazione
Attiva Watchlist events nelle impostazioni dell'app dalla pagina Realtime → Apps, oppure imposta watchlist_events a true sull'app tramite la API Realtime. Le connessioni acquisiscono l'impostazione al momento della connessione, quindi attivala prima di rilasciare i client che ne dipendono.
Inserisci la watchlist nell'identità firmata
La watchlist fa parte di member_data, la stringa JSON che il tuo endpoint di autenticazione membro firma. Aggiungi gli id accanto all'identità:
Esempio di codice
{
"member_id": "u_1",
"member_info": { "name": "Ada" },
"watchlist": ["u_2", "u_3"]
}Poiché la lista è dentro l'identità firmata, il tuo endpoint di autenticazione decide chi un membro può seguire: costruisci l'array dai tuoi dati (i suoi contatti, il suo team) anziché accettarne uno inviato dal client, altrimenti qualsiasi membro può seguire qualsiasi altro. Una watchlist contiene fino a 100 id; una lista più lunga viene troncata ai primi 100 e la connessione riceve l'errore 4302 con gli id accettati.
La lista viene acquisita al signin e resta valida per tutta la durata della connessione. Per modificarla, fai firmare la nuova lista al tuo endpoint: il client si autentica di nuovo automaticamente a ogni riconnessione, quindi la connessione successiva segue la lista aggiornata e riceve gli stati correnti.
Ascoltare nel browser
Effettua il bind su bird.member.watchlist. Lo stato corrente dell'intera lista arriva subito dopo il signin, così puoi mostrare chi è online prima che qualcuno cambi stato:
Esempio di codice
await bird.signin();
bird.member.watchlist.bind("online", (memberIds) => {
console.log("online:", memberIds);
});
bird.member.watchlist.bind("offline", (memberIds) => {
console.log("offline:", memberIds);
});Ogni evento contiene gli id membro a cui si applica. La consegna iniziale dopo il signin copre l'intera lista, raggruppata per stato; dopodiché gli eventi arrivano quando i membri passano tra zero e una connessione.
Watchlist o presence?
I canali presence rispondono a "who is in this room with me": tutti si iscrivono allo stesso canale e vedono la stessa lista di membri. Una watchlist risponde a "are the people I care about online anywhere": ogni membro segue la propria lista, e le persone seguite non devono fare nulla oltre ad autenticarsi. Una lista contatti, un indicatore di disponibilità agente o un nudge "your contact just came online" sono lavoro da watchlist; un roster di stanza condivisa è presence.
Prossimi passi
- Terminare le connessioni dei membri tratta il signin e il contratto di identità in cui risiede la watchlist.
- Canali presence per la membership di stanze condivise anziché liste di follow personali.
- Inviare eventi a un membro è l'altra superficie indirizzata al membro.
Risorse correlate
Prosegui con la documentazione, le guide e gli esempi per questo argomento. Le risorse sono in inglese.
Esplora la funzionalitàRealtimeSegui il percorso di apprendimentoBuild your first integrationGuida all'implementazioneSend your first realtime event
Prova l'esercitazione e ottieni un brief di implementazione