Watchlist-Events
Ein Mitglied, das sich anmeldet, kann die Mitglieder benennen, denen es folgen möchte, und die Verbindung wird benachrichtigt, wenn eines davon online oder offline geht. Das ist die gesamte Funktion: kein Kanal pro Beziehung, kein Polling, eine Liste.
Watchlist-Events bauen auf dem Member-Signin auf. Die Identität, die Ihr Backend beim Signin signiert, kann ein watchlist-Array mit Member-IDs enthalten; wenn die watchlist_events-Einstellung der App aktiviert ist, empfängt die Verbindung Online- und Offline-Events für genau diese IDs. Ein Mitglied ist online, solange es mindestens eine angemeldete Verbindung hat: Die erste Verbindung löst online aus, das Schließen der letzten löst offline aus, und Tabs dazwischen lösen nichts aus – dieselbe Zählung, die Presence-Kanäle verwenden.
Aktivierung
Schalten Sie Watchlist events in den Einstellungen der App auf der Seite Realtime → Apps um, oder setzen Sie watchlist_events über die Realtime-API auf true für die App. Verbindungen übernehmen die Einstellung beim Verbindungsaufbau, also aktivieren Sie sie, bevor die Clients ausgeliefert werden, die darauf angewiesen sind.
Watchlist in die signierte Identität einfügen
Die Watchlist ist Teil von member_data, dem JSON-String, den Ihr Member-Auth-Endpoint signiert. Fügen Sie die IDs neben der Identität hinzu:
Codebeispiel
{
"member_id": "u_1",
"member_info": { "name": "Ada" },
"watchlist": ["u_2", "u_3"]
}Da die Liste in der signierten Identität steckt, entscheidet Ihr Auth-Endpoint, wen ein Mitglied beobachten darf: Erstellen Sie das Array aus Ihren eigenen Daten (Kontakte, Team), anstatt eines vom Client gesendeten zu akzeptieren, sonst kann jedes Mitglied jedes andere beobachten. Eine Watchlist fasst bis zu 100 IDs; eine längere Liste wird auf die ersten 100 gekürzt, und die Verbindung empfängt den Fehler 4302 mit den IDs, die akzeptiert wurden.
Die Liste wird beim Signin erfasst und gilt für die gesamte Lebensdauer der Verbindung. Um sie zu ändern, lassen Sie Ihren Endpoint die neue Liste signieren: Der Client meldet sich bei jedem Reconnect automatisch erneut an, sodass die nächste Verbindung der aktualisierten Liste folgt und deren aktuelle Status empfängt.
Im Browser lauschen
Binden Sie auf bird.member.watchlist. Der aktuelle Status der gesamten Liste trifft direkt nach dem Signin ein, sodass Sie anzeigen können, wer online ist, bevor sich ein Status ändert:
Codebeispiel
await bird.signin();
bird.member.watchlist.bind("online", (memberIds) => {
console.log("online:", memberIds);
});
bird.member.watchlist.bind("offline", (memberIds) => {
console.log("offline:", memberIds);
});Jedes Event enthält die Member-IDs, auf die es sich bezieht. Die initiale Zustellung nach dem Signin deckt die gesamte Liste ab, gruppiert nach Status; danach treffen Events ein, wenn Mitglieder die Grenze zwischen null und einer Verbindung überschreiten.
Watchlist oder Presence?
Presence-Kanäle beantworten "who is in this room with me": Alle abonnieren denselben Kanal und sehen dieselbe Mitgliederliste. Eine Watchlist beantwortet "are the people I care about online anywhere": Jedes Mitglied folgt seiner eigenen Liste, und die beobachteten Personen müssen nichts weiter tun, als sich anzumelden. Eine Kontaktliste, ein Agenten-Verfügbarkeitsindikator oder ein "your contact just came online"-Hinweis ist Watchlist-Arbeit; eine gemeinsame Raum-Teilnehmerliste ist Presence.
Nächste Schritte
- Member-Verbindungen beenden behandelt das Signin und den Identitätsvertrag, in dem die Watchlist enthalten ist.
- Presence-Kanäle für gemeinsame Raum-Mitgliedschaft statt persönlicher Folgelisten.
- Events an ein Mitglied senden ist die andere mitgliederbezogene Oberfläche.
Verwandte Ressourcen
Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.
Die Funktion erkundenRealtimeDem Lernpfad folgenBuild your first integrationImplementierungsleitfadenSend your first realtime event
Übung ausprobieren und ein Implementierungs-Briefing erhalten