Developer guide
Multi-device message sync is a server-side service from Nexconn that keeps sent and received messages in sync across all devices sharing the same user account.
By default, Nexconn does not sync messages between devices. Once a message is delivered to one device, other devices signed in to the same account cannot retrieve it. For example, if a user is signed in on both Web and mobile, a message received on Web is not delivered to the mobile device.
When to use
Enable multi-device message sync in any of these scenarios:
-
Multiple simultaneous devices — the same account is online on more than one device at a time (including multiple devices of the same platform, such as two Android phones and one iOS device), and messages must be synced across all of them.
tipNexconn supports concurrent logins across platform categories by default — a single account can be online on up to one device each of: mobile, Web, desktop, and Mini Program. To allow multiple devices within the same platform category (e.g., two mobile devices), contact support. See Multi-device Concurrent Access.
-
Device switch — the user signs in on a new device and needs access to their message history from other devices.
-
App reinstall — the user reinstalls the app and needs their message history restored.
Unsupported message types
Not all messages are eligible for multi-device sync. Transient messages are only delivered to devices that are online at the time of sending — offline devices cannot receive them through the sync service.
Transient messages include:
- Built-in transient message types, such as the typing indicator (
RC:TypSts). - Custom message types registered as transient. See the "Custom Messages" guide for your platform.
- All messages sent via server-side status message APIs, regardless of type.
Configure the service
Go to the Chat settings page in the console to manage Message synchronization under Chat > Chat settings > Multi Client. The service is supported by default in both development and production environments. If you do not need it, you can disable it here.
Changes take effect within 15 minutes of enabling or disabling the service.
Impact on other features
Enabling or disabling Multi-device Message Sync affects offline message compensation, message recall, and Web platform connection limits.
Offline message compensation
The Multi-device Message Sync toggle also controls the offline message compensation mechanism on the Nexconn server. When the service is enabled, compensation is automatically activated and triggers in the following scenarios:
- Device switch — when a user signs in on a new device, the Chat SDK retrieves messages sent and received on other devices within the compensation window (default: 1 calendar day).
- App reinstall — the local database is deleted when the app is uninstalled. On reinstall and reconnect, compensation is triggered and the SDK retrieves messages from the compensation window (default: 1 calendar day).
In both scenarios, compensation only covers the most recent period (default: 1 day, maximum: 7 days). Channels older than this window cannot be recovered. The channel list after compensation may therefore differ from the original device — some older channels may appear missing.
To extend the compensation window, submit a support ticket. Use caution with longer windows — high per-user message volumes can create significant processing load on the client.
Web platform connections
After enabling Multi-device Message Sync, a single user can maintain up to 10 simultaneous Web connections. Each browser tab counts as one connection. When the limit is exceeded, the earliest connection is automatically dropped.
Message recall
| Service state | Behavior |
|---|---|
| Disabled | Recalled messages are not synced across devices. |
| Enabled | Recalling a message on one device syncs the recall to all other online devices immediately. Offline devices receive the recall when they next come online. |
Server API message sending
Some server API endpoints accept an isIncludeSender parameter to control whether the sender's client receives the sent message.
| Service state | Behavior |
|---|---|
| Disabled | Messages sent via the Server API are only delivered to the sender's client if they are online at the time. Offline clients do not receive them. |
| Enabled | Messages sent via the Server API are delivered to the sender's client when they next come online, even if the sender was offline at the time of sending. |