Message type overview
Nexconn provides a rich set of built-in message types to simplify chat application development. Each built-in message type has a unique type identifier (ObjectName) and a predefined content structure. Different message types have different server and client processing behaviors.
Message properties
Each message type defines the following properties:
- Client counting & storage: Whether the message increments the unread count and whether the client SDK stores it locally.
- Missed message caching: Whether the server caches the message for offline recipients (direct, group, and system channels only). Cached for up to 7 days by default.
- Push notifications: Whether the message triggers a remote push notification when the recipient is offline. Push notifications require a notification title and content. Some built-in message types have preset push notification titles and content.
- Client unread count behavior only affects the channel unread count, not the app badge.
- Messages sent via the server API are stored only in the recipient's server-side history by default (requires the corresponding cloud storage service). To also store in the sender's history, see Sync sent messages to the sender's client.
- Community channels and open channels do not support missed message caching.
- Web and mini-program clients do not support local message storage.
- Web, mini-program, and PC clients cannot receive push notifications.
Message categories
Built-in message types are organized into the following categories:
- User content messages: Messages containing user-generated content — text, image, GIF, voice, file, video, location, quote, and combined forward.
- Notification messages: Notifications displayed in the chat UI, such as recall notifications or group notifications. Do not increment the unread count.
- Transient messages: Ephemeral status messages (e.g., "typing" indicators). Not stored on the client or server.
- Signal messages: Internal messages used by the SDK to implement its own features. Apps generally do not need to handle these.
User content messages
User content messages have preset push notification titles and content. If custom push content is not provided at send time, the preset values are used.
| Message Type | ObjectName | Client Behavior | Missed Message Caching | Push Notification |
|---|---|---|---|---|
| Text message | RC:TxtMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| HD voice message | RC:HQVCMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| Image message | RC:ImgMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| GIF message | RC:GIFMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| Rich content message | RC:ImgTextMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| File message | RC:FileMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| Location message | RC:LBSMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| Short video message | RC:SightMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| Quote message | RC:ReferenceMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
| Combined forward message | RC:CombineMsg | ISCOUNTED: stored, counts as unread | Supported | Supported by default |
Notification messages
Notification messages do not have preset push notification content. To trigger push notifications for offline recipients, provide custom push content at send time.
| Message Type | ObjectName | Client Behavior | Missed Message Caching | Push Notification |
|---|---|---|---|---|
| Recall notification | RC:RcNtf | ISPERSISTED: stored, no unread count | Supported | Not supported by default |
| Contact notification | RC:ContactNtf | ISPERSISTED: stored, no unread count | Supported | Not supported by default |
| Profile notification | RC:ProfileNtf | ISPERSISTED: stored, no unread count | Supported | Not supported by default |
| Info notification | RC:InfoNtf | ISPERSISTED: stored, no unread count | Supported | Not supported by default |
| Group notification | RC:GrpNtf | ISPERSISTED: stored, no unread count | Supported | Not supported by default |
| Command notification | RC:CmdNtf | ISPERSISTED: stored, no unread count | Supported | Not supported by default |
Transient messages
Transient messages represent instantaneous states (e.g., typing indicators). They are only received when the user is online. Neither the client nor the server stores them. To send via the server API, use the transient message endpoints.
| Message Type | ObjectName | Client Behavior | Missed Message Caching | Push Notification |
|---|---|---|---|---|
| Typing status | RC:TypSts | STATUS: not stored, no unread count | Not supported | Not supported |
Signal messages
Signal messages are used internally by the SDK. Apps generally do not need to handle them.
These messages need to be delivered reliably but are not displayed in the UI. If the recipient is offline, they are delivered as missed messages on reconnection. Message routing and message callback services include these message types.
Signal messages
| Message Type | ObjectName | Client Behavior | Missed Message Caching | Push Notification |
|---|---|---|---|---|
| Command message | RC:CmdMsg | NONE: not stored, no unread count | Supported | Not supported by default |
| Recall command | RC:RcCmd | NONE: not stored, no unread count | Supported | Supported by default |
| Read receipt (direct) | RC:ReadNtf | NONE: not stored, no unread count | Supported | Not supported by default |
| Read receipt request (group) | RC:RRReqMsg | NONE: not stored, no unread count | Supported | Not supported by default |
| Read receipt response (group) | RC:RRRspMsg | NONE: not stored, no unread count | Supported | Not supported by default |
| Multi-device read sync | RC:SRSMsg | NONE: not stored, no unread count | Supported | Not supported by default |
| Open channel KV notification | RC:chrmKVNotiMsg | NONE: not stored, no unread count | Supported | Not supported by default |
Audio/video call signal messages
| Message Type | ObjectName | Client Behavior | Missed Message Caching | Push Notification |
|---|---|---|---|---|
| Call accept | RC:VCAccept | NONE: not stored | Supported | Supported by default |
| Call hangup | RC:VCHangup | NONE: not stored | Supported | Supported by default |
| Call invite | RC:VCInvite | NONE: not stored | Supported | Supported by default |
| Media switch | RC:VCModifyMedia | NONE: not stored | Supported | Supported by default |
| Member change | RC:VCModifyMem | NONE: not stored | Supported | Supported by default |
| Call ringing | RC:VCRinging | NONE: not stored | Supported | Supported by default |
Message metadata operation message
RC:MsgExMsg — generated when message metadata is set or deleted in community channels. Available via message routing and message callback. Not delivered to client SDKs.
Streaming message
RC:StreamMsg — see Streaming message format. Supports direct and group channels with real-time typewriter display on clients.