User Awareness & State
Presence Channels & Rosters
Realtime user presence, active user rosters, and join/leave membership events.
Presence Events & Client Binding
Presence channels emit system events for initial roster synchronization and user state transitions:
const channel = client.subscribe("presence-meeting-room");
// Successfully joined and received current member roster
channel.bind("pusher:subscription_succeeded", (members) => {
console.log("Total members in room:", members.count);
members.each((member) => {
console.log("User in room:", member.id, member.info);
});
});
// Another user joined
channel.bind("pusher:member_added", (member) => {
console.log("User joined:", member.id, member.info);
});
// A user left or disconnected
channel.bind("pusher:member_removed", (member) => {
console.log("User left:", member.id);
});