Overview

Presence tracks whether users are online or offline. The system automatically manages presence based on WebSocket connection state.

Presence States

Automatic Presence

Presence is automatically managed:
  1. Connect → User is marked online
  2. Disconnect → User is marked offline
  3. Reconnect → User is marked online again
No manual presence updates are required.

Receiving Presence Updates

Presence updates are broadcast to relevant users:

Handling Presence

Presence Scope

Presence events are delivered based on context:
  • Conversation members - Users in the same conversation
  • Tenant-wide - Depending on configuration

Tracking Multiple Users

Deduplication

The system deduplicates presence events:
  • Multiple online events for the same user are collapsed
  • Only state changes trigger broadcasts
  • Prevents flickering during reconnection

Complete Example

UI Patterns

Online Indicator

Online Users List

Best Practices

Debounce Updates

Debounce UI updates to prevent flickering during reconnection.

Default State

Assume ‘unknown’ for users without presence data.

Cache Presence

Cache presence state for quick lookups.

Graceful Fallback

Handle connection drops gracefully.

Next Steps

Typing

Typing indicators

Messaging

Real-time messaging

SDK Presence

SDK presence guide

Rooms

Room management