Skip to main content

Receive messages

Receive real-time messages through the Chat SDK's message listener.

Register a message listener

Use NCEngine.addMessageHandler to register a handler that receives all incoming messages. Register the listener before calling connect.

TypeScript
import { NCEngine, MessageHandler } from '@nexconn/chat';

NCEngine.addMessageHandler('my-handler', new MessageHandler({
onMessageReceived({ messages }) {
messages.forEach((msg) => {
console.log('Received:', msg.messageType, msg.content);
});
},
}));

Message object properties

Each received message contains the following properties:

PropertyTypeDescription
messageIdstringUnique message ID assigned by the server
messageTypestringMessage type identifier (e.g., RC:TxtMsg)
contentTMessage content (varies by message type)
senderUserIdstringSender's user ID
channelIdstringChannel ID
channelTypeChannelTypeChannel type
sentTimenumberServer timestamp

Handle different message types

TypeScript
import { NCEngine, MessageHandler, MessageType, TextMessageContent, ImageMessageContent } from '@nexconn/chat';

NCEngine.addMessageHandler('type-handler', new MessageHandler({
onMessageReceived({ messages }) {
messages.forEach((msg) => {
switch (msg.messageType) {
case MessageType.TEXT: {
const content = msg.content as TextMessageContent;
console.log('Text:', content.text);
break;
}
case MessageType.IMAGE: {
const content = msg.content as ImageMessageContent;
console.log('Image URL:', content.remoteUrl);
break;
}
default:
console.log('Other message type:', msg.messageType);
}
});
},
}));

Remove a message listener

TypeScript
NCEngine.removeMessageHandler('my-handler');
tip
  • You can register multiple message handlers with different uniqueId values.
  • Messages from all channel types (direct, group, open channel, community) are delivered through the same listener. Use channelType to filter.