Docs

Presence

See who is connected to a channel: how presence is tracked, how long someone stays listed after disconnecting, several tabs and devices, and privacy.

Updated Oct 17, 2026Open in console

Presence answers "who is here right now?" for a channel — online indicators, "3 people are viewing", collaborators in a document.

const here = await sovaria.realtime.presence('doc-1234')
// { channel: 'doc-1234', online_clients: ['…', '…'], count: 2 }

How it is tracked

  • Every open connection to the channel is listed while it is alive; connections heartbeat every 30 seconds.
  • A connection that closes cleanly leaves the list at once. One that vanishes (network loss, crashed app) is removed after about 90 seconds without a heartbeat.
  • Each tab or device is its own connection (its own client id), so one person can count several times. To show people, have each client publish a small "joined" message with its user id and keep a list.
  • Poll presence when you need it (for example every 15–30 seconds), or publish your own "joined"/"left" messages for instant updates.

Privacy

Only callers allowed to subscribe to the channel can read its presence. Presence lists who is connected, not what they are doing; don't put personal data in channel names.

FreeProUltraTeamEnterprise
Realtime presence✓✓✓✓✓
Realtime connections per signed-in user2050100200500
Something unclear or missing on this page?Tell us