private-user-1e9
Notifications
One server event, delivered to every surface a user has open.
Use case
A chat room is a presence channel. Membership comes from the channel, not a table you keep in sync. Messages are events; typing indicators never touch your server.
History is your database's job, not the channel's. A client that joins gets what happens next — load the backlog over HTTP.
const room = pusher.subscribe('presence-room-42')room.bind('pusher:subscription_succeeded', (members) => { renderMemberList(members)})room.bind('pusher:member_added', (m) => addMember(m))room.bind('pusher:member_removed', (m) => removeMember(m))room.bind('message', (msg) => appendMessage(msg))// Ephemeral, straight between subscribers.input.oninput = () => room.trigger('client-typing', { at: Date.now() })Written with the official Pusher libraries, unmodified — there is no PushCaster package to install. Full documentation
One server event, delivered to every surface a user has open.
Push metrics as they change instead of polling for them.
Shared documents, canvases and cursors with tracked membership.