Skip to main content

Receive messages

Register a message handler

Register a MessageHandler to receive all incoming messages.

tip
  1. Register the handler during the app lifecycle, before connecting.
  2. You can register multiple handlers with different identifiers.
  3. Remove the handler when it is no longer needed to avoid memory leaks.

Method

Dart
static void addMessageHandler(String identifier, MessageHandler handler)

Parameters

ParameterTypeDescription
identifierStringA unique ID for this handler.
handlerMessageHandlerHandler with callback properties for each event type.

MessageReceivedEvent

PropertyTypeDescription
messageMessageThe received message object.
leftint?Remaining messages in the current compensation package. After connection, the server delivers missed messages in packages of up to 200.
offlinebool?Whether the message is a missed message.
hasPackagebool?Whether undelivered message packages remain on the server.

Code example

Dart
NCEngine.addMessageHandler('msg-handler', MessageHandler(
onMessageReceived: (event) {
print('New message: ${event.message.messageId}');
},
));

Remove the handler when it is no longer needed:

Dart
NCEngine.removeMessageHandler('msg-handler');

Notes

  • When receiving missed messages, the server sends packages of up to 200 messages to the client.
  • hasPackage indicates whether more packages remain. left indicates how many messages remain in the current package.
  • All missed messages are received when hasPackage is false and left is 0.