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
- Kończenie połączeń członków opisuje logowanie i kontrakt tożsamości, na którym opiera się watchlista.
- Kanały presence do wspólnego członkostwa w pokoju zamiast osobistych list obserwowanych.
- Wysyłanie zdarzeń do członka to druga powierzchnia adresowana do członka.
Powiązane zasoby
Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.
Poznaj możliwościRealtimePodążaj ścieżką naukiBuild your first integrationPrzewodnik wdrożeniowySend your first realtime event
Wypróbuj ćwiczenie i uzyskaj brief wdrożeniowy