Watchlist-events
Een member dat inlogt kan opgeven welke members het wil volgen, en de connectie krijgt bericht wanneer een van hen online of offline gaat. Dat is de hele feature: geen channel per relatie, geen polling, één lijst.
Watchlist-events bouwen voort op member-signin. De identity die je backend bij signin ondertekent, kan een watchlist-array van member-id's bevatten; als de watchlist_events-instelling van de app aanstaat, ontvangt de connectie online- en offline-events voor precies die id's. Een member is online zolang die ten minste één ingelogde connectie heeft: de eerste connectie vuurt online, het sluiten van de laatste vuurt offline, en tussenliggende tabs vuren niets, dezelfde telling die presence channels gebruiken.
Zet het aan
Schakel Watchlist events in via de instellingen van de app op de pagina Realtime → Apps, of stel watchlist_events in op true op de app via de Realtime API. Connecties nemen de instelling over wanneer ze verbinden, dus zet het aan voordat de clients die erop vertrouwen live gaan.
Zet de watchlist in de ondertekende identity
De watchlist maakt deel uit van member_data, de JSON-string die je member-auth-endpoint ondertekent. Voeg de id's toe naast de identity:
Codevoorbeeld
{
"member_id": "u_1",
"member_info": { "name": "Ada" },
"watchlist": ["u_2", "u_3"]
}Omdat de lijst in de ondertekende identity zit, bepaalt je auth-endpoint wie een member mag volgen: bouw de array op basis van je eigen data (hun contacten, hun team) in plaats van een lijst te accepteren die de client meestuurt, anders kan elk member elk ander member volgen. Een watchlist bevat maximaal 100 id's; een langere lijst wordt afgekapt tot de eerste 100 en de connectie ontvangt error 4302 met de id's die geaccepteerd zijn.
De lijst wordt vastgelegd bij signin en geldt voor de levensduur van de connectie. Om hem te wijzigen laat je je endpoint de nieuwe lijst ondertekenen: de client logt bij elke reconnect automatisch opnieuw in, dus de volgende connectie volgt de bijgewerkte lijst en ontvangt de actuele statussen.
Luisteren in de browser
Bind op bird.member.watchlist. De huidige status van de hele lijst komt direct na signin binnen, zodat je kunt tonen wie online is voordat iemand van status verandert:
Codevoorbeeld
await bird.signin();
bird.member.watchlist.bind("online", (memberIds) => {
console.log("online:", memberIds);
});
bird.member.watchlist.bind("offline", (memberIds) => {
console.log("offline:", memberIds);
});Elk event bevat de member-id's waarvoor het geldt. De eerste levering na signin bestrijkt de volledige lijst, gegroepeerd op status; daarna komen events binnen wanneer members wisselen tussen nul en één connectie.
Watchlist of presence?
Presence channels beantwoorden "who is in this room with me": iedereen subscribet op hetzelfde channel en ziet dezelfde memberlijst. Een watchlist beantwoordt "are the people I care about online anywhere": elk member volgt zijn eigen lijst, en de mensen die gevolgd worden hoeven niets te doen behalve inloggen. Een buddy list, een beschikbaarheidsindicator voor agents of een "your contact just came online"-nudge is watchlist-werk; een gedeelde roomroster is presence.
Vervolgstappen
- Terminating member connections behandelt signin en het identity-contract waarin de watchlist meereist.
- Presence channels voor gedeeld roomlidmaatschap in plaats van persoonlijke volglijsten.
- Sending events to a member is het andere member-gerichte oppervlak.
Gerelateerde bronnen
Ga verder met de documentatie, gidsen en voorbeelden voor dit onderwerp. De bronnen zijn in het Engels.
Ontdek de mogelijkheidRealtimeVolg het leerpadBuild your first integrationImplementatiegidsSend your first realtime event
Probeer de oefening en ontvang een implementatieoverzicht