Sign inGet started

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