Sign inGet started

Zdarzenia watchlist

Członek, który się loguje, może wskazać członków, których chce śledzić, a połączenie jest powiadamiane, gdy którykolwiek z nich przejdzie w tryb online lub offline. To cała funkcja: żadnego kanału na relację, żadnego odpytywania, jedna lista.
Zdarzenia watchlist opierają się na logowaniu członka. Tożsamość, którą Twój backend podpisuje przy logowaniu, może zawierać tablicę watchlist identyfikatorów członków; gdy ustawienie watchlist_events aplikacji jest włączone, połączenie otrzymuje zdarzenia online i offline dokładnie dla tych identyfikatorów. Członek jest online, dopóki ma co najmniej jedno zalogowane połączenie: pierwsze połączenie wywołuje online, zamknięcie ostatniego wywołuje offline, a karty pomiędzy nimi nie wywołują niczego. To samo zliczanie, którego używają kanały presence.

Włącz to

Przełącz Watchlist events w ustawieniach aplikacji na stronie Realtime → Apps albo ustaw watchlist_events na true w aplikacji przez Realtime API. Połączenia pobierają to ustawienie w momencie nawiązania, więc włącz je, zanim klienty, które na nim polegają, trafią na produkcję.

Umieść watchlistę w podpisanej tożsamości

Watchlista jest częścią member_data, ciągu JSON, który podpisuje Twój endpoint autoryzacji członka. Dodaj identyfikatory obok tożsamości:
Przykład kodu
{
  "member_id": "u_1",
  "member_info": { "name": "Ada" },
  "watchlist": ["u_2", "u_3"]
}
Ponieważ lista znajduje się wewnątrz podpisanej tożsamości, Twój endpoint autoryzacji decyduje, kogo członek może obserwować: buduj tablicę na podstawie własnych danych (kontakty członka, jego zespół) zamiast przyjmować tablicę przesłaną przez klienta, bo inaczej każdy członek może obserwować każdego innego. Watchlista mieści do 100 identyfikatorów; dłuższa lista jest przycinana do pierwszych 100, a połączenie otrzymuje błąd 4302 z informacją, które identyfikatory zostały zaakceptowane.
Lista jest zapisywana przy logowaniu i obowiązuje przez cały czas życia połączenia. Aby ją zmienić, podpisz nową listę w swoim endpoincie: klient loguje się ponownie automatycznie przy każdym ponownym połączeniu, więc następne połączenie używa zaktualizowanej listy i otrzymuje jej bieżące statusy.

Nasłuchuj w przeglądarce

Binduj na bird.member.watchlist. Bieżący status całej listy przychodzi zaraz po logowaniu, więc możesz wyświetlić, kto jest online, zanim ktokolwiek zmieni stan:
Przykład kodu
await bird.signin();

bird.member.watchlist.bind("online", (memberIds) => {
  console.log("online:", memberIds);
});
bird.member.watchlist.bind("offline", (memberIds) => {
  console.log("offline:", memberIds);
});
Każde zdarzenie zawiera identyfikatory członków, których dotyczy. Początkowa dostawa po logowaniu obejmuje pełną listę pogrupowaną według statusu; potem zdarzenia przychodzą, gdy członkowie przechodzą między zerem a jednym połączeniem.

Watchlista czy presence?

Kanały presence odpowiadają na pytanie "who is in this room with me": wszyscy subskrybują ten sam kanał i widzą tę samą listę członków. Watchlista odpowiada na pytanie "are the people I care about online anywhere": każdy członek śledzi własną listę, a obserwowani nie muszą robić nic poza zalogowaniem się. Lista kontaktów, wskaźnik dostępności agenta czy powiadomienie "your contact just came online" to zadanie dla watchlisty; wspólny roster pokoju to presence.

Następne kroki

Powiązane zasoby

Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.

Wypróbuj ćwiczenie i uzyskaj brief wdrożeniowy