Sign inGet started

Canali presence

Un canale il cui nome inizia con presence- usa l'autorizzazione dei canali privati e aggiunge l'identità del membro. Il tuo backend assegna a ogni iscritto un member_id. Gli iscritti ricevono la lista dei membri attuale e gli eventi quando i membri entrano o escono.
Usa i canali presence per elenchi di utenti online, visualizzatori di documenti, indicatori di digitazione o cursori collaborativi.

Iscrizione

const room = bird.subscribe("presence-room-1");

room.bind("bird:subscription_succeeded", () => {
  console.log("me:", room.myId);
  console.log("here now:", [...room.members.values()]);
});

room.bind("bird:member_added", (member) => console.log("joined", member.member_id));
room.bind("bird:member_removed", (member) => console.log("left", member.member_id));
In Swift e Kotlin, subscribe restituisce un tipo di canale base. Esegui il cast a PresenceChannel prima di accedere a myId o members. Swift fornisce una mappa dei membri per bird:subscription_succeeded e un Member per gli eventi di ingresso e uscita. Kotlin fornisce ogni evento come JsonElement. In entrambi i client, leggi l'elenco attuale da room.members.
bird:subscription_succeeded si attiva quando l'iscrizione è completata. A quel punto, room.members contiene l'elenco attuale e room.myId contiene il tuo member_id. Renderizza questo elenco iniziale prima di applicare i successivi eventi di ingresso e uscita.
L'autorizzazione segue lo stesso flusso di un canale privato con un'aggiunta: il tuo endpoint restituisce member_data, una stringa JSON che contiene member_id e member_info opzionali, e deve firmare esattamente quella stringa. Vedi Autorizzazione dei canali.

Usa member_info in modo sicuro

Ogni membro del canale riceve member_info. Usalo per piccoli dati di profilo pubblici come un nome visualizzato o un URL avatar. Non includere indirizzi email, ruoli di autorizzazione o altri dati sensibili.
Il tuo backend assegna member_id e member_info nella sua risposta di autorizzazione firmata. Il client può richiedere un'iscrizione ma non può scegliere l'identità firmata.

Membri e connessioni

Un membro può avere più connessioni. Ad esempio, tre schede aperte producono un membro e tre connessioni:
Cosa succedeEvento membroConnessioni al canale
Prima scheda si iscrivebird:member_added1
Seconda scheda si iscrivenessuno2
Seconda scheda si chiudenessuno1
Ultima scheda si chiudebird:member_removed0
room.members rappresenta identità, non sessioni. Per ricevere il numero di connessioni aperte, abilita Connection counting e Connection count events, poi associa bird:connection_count.

Lettura della presence dal server

Esistono due letture lato server, e nessuna delle due richiede un'iscrizione:
member_count è disponibile solo per i canali presence. Richiederlo su un canale pubblico o privato produce un errore di validazione, perché quei canali non hanno membri.
Puoi anche richiederlo durante la pubblicazione: viene restituito lo stato di ogni canale di destinazione in quel momento. Vedi Pubblicazione degli eventi.

Passi successivi