Sign inGet started

Canaux de présence

Un canal dont le nom commence par presence- utilise l'autorisation de canal privé et ajoute l'identité du membre. Votre backend attribue à chaque abonné un member_id. Les abonnés reçoivent la liste actuelle des membres et les événements lorsque des membres rejoignent ou quittent le canal.
Utilisez les canaux de présence pour des listes de présence en ligne, des indicateurs de consultation de documents, des indicateurs de saisie ou des curseurs collaboratifs.

Abonnement

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));
En Swift et Kotlin, subscribe renvoie un type de canal de base. Convertissez-le en PresenceChannel avant d'accéder à myId ou members. Swift fournit une map de membres pour bird:subscription_succeeded et un Member pour les événements de connexion et de déconnexion. Kotlin fournit chaque événement sous forme de JsonElement. Dans les deux clients, lisez la liste actuelle depuis room.members.
bird:subscription_succeeded se déclenche lorsque l'abonnement est terminé. À ce moment, room.members contient la liste actuelle et room.myId contient votre member_id. Affichez cette liste initiale avant d'appliquer les événements ultérieurs de connexion et de déconnexion.
L'autorisation suit le même flux qu'un canal privé avec un ajout : votre endpoint renvoie member_data, une chaîne JSON contenant member_id et un member_info optionnel, et il doit signer cette chaîne exacte. Voir Autoriser les canaux.

Utilisez member_info en toute sécurité

Chaque membre du canal reçoit member_info. Utilisez-le pour de petites données de profil public telles qu'un nom d'affichage ou une URL d'avatar. N'incluez pas d'adresses e-mail, de rôles d'autorisation ou d'autres données sensibles.
Votre backend attribue member_id et member_info dans sa réponse d'autorisation signée. Le client peut demander un abonnement mais ne peut pas choisir l'identité signée.

Membres et connexions

Un membre peut avoir plusieurs connexions. Par exemple, trois onglets ouverts produisent un membre et trois connexions :
Ce qui se passeÉvénement membreNombre de connexions au canal
Le premier onglet s'abonnebird:member_added1
Le deuxième onglet s'abonneaucun2
Le deuxième onglet se fermeaucun1
Le dernier onglet se fermebird:member_removed0
room.members représente des identités plutôt que des sessions. Pour recevoir le nombre de connexions ouvertes, activez Connection counting et Connection count events, puis bindez bird:connection_count.

Lire la présence depuis votre serveur

Deux lectures côté serveur existent, et aucune ne nécessite d'abonnement :
member_count est réservé aux canaux de présence. Le demander sur un canal public ou privé est une erreur de validation, car ces canaux n'ont pas de membres.
Vous pouvez aussi le demander lors de la publication, ce qui renvoie l'état de chaque canal cible à cet instant. Voir Publier des événements.

Étapes suivantes