presence-room-42
Realtime chat
Rooms, membership and typing indicators on presence channels.
Use case
Two people editing the same thing need three answers continuously: who else is here, what did they just do, where is their cursor. Presence, events and client events answer them in turn.
Client events are rate-limited and not persisted — they suit cursors, not edits. Anything that must survive a refresh goes through your server.
const doc = pusher.subscribe('presence-doc-9f2')// Ephemeral: straight between editors, never persisted.canvas.onpointermove = throttle((e) => { doc.trigger('client-cursor', { x: e.clientX, y: e.clientY })}, 50)// Durable: your server persisted it, then published it.doc.bind('block-updated', (block) => applyBlock(block))Written with the official Pusher libraries, unmodified — there is no PushCaster package to install. Full documentation
Rooms, membership and typing indicators on presence channels.
One server event, delivered to every surface a user has open.
Push metrics as they change instead of polling for them.