- Network presence tracks the current user’s heartbeat and lets iOS and Android apps read or sync other users’ online state.
- Room presence tracks who is currently watching a live room. It is available on iOS, Android, and TypeScript.
Presence APIs require the presence feature to be enabled for your network. If the feature is disabled, heartbeat calls can fail with an SDK error.
Platform Surface
| Capability | TypeScript | iOS | Android | Flutter |
|---|---|---|---|---|
| Current user heartbeat | Not available | client.presence | AmityCoreClient.presence() | Not available |
| User presence | Not available | AmityUserPresenceRepository | AmityCoreClient.newUserPresenceRepository() | Not available |
| Channel presence | Not available | AmityChannelPresenceRepository | AmityChatClient.newChannelPresenceRepository() | Not available |
| Room presence | RoomPresenceRepository | AmityRoomPresenceRepository | AmityCoreClient.newRoomPresenceRepository() | Not available |
Which Presence API to Use
User Presence
Read specific users’ online state, sync visible users in a list, or fetch a snapshot of online users.
Channel Presence
Show whether any other member of a conversation channel is online.
Room Presence
Count and list users currently watching a live room.
Heartbeat Sync
Start and stop the heartbeat that marks the current user or room viewer as active.
Behavior to Know
Online state is heartbeat based
Online state is heartbeat based
iOS and Android expose
isOnline as a computed value from the user’s last heartbeat. The SDK considers a user online while the last heartbeat is recent.Syncing is for visible UI
Syncing is for visible UI
User and channel sync APIs are meant for visible lists. Start syncing when an item appears, then unsync when it disappears so you stay within the SDK sync limits.
Room presence is separate from user presence
Room presence is separate from user presence
Room presence uses room-specific heartbeat and count APIs. Use it for live rooms and viewer lists, not for general “online user” badges.
Flutter is not covered yet
Flutter is not covered yet
The Flutter SDK in this checkout does not expose user, channel, or room presence repositories. Do not copy iOS, Android, or TypeScript presence snippets into Flutter integrations.
Related Topics
Live Objects & Collections
Use live data objects for SDK resources that publish real-time updates.
Realtime Events
Learn how event subscriptions power live chat and social experiences.