Receive messages
Register a message handler
Register a MessageHandler to receive all incoming messages.
tip
- Register the handler during the app lifecycle, before connecting.
- You can register multiple handlers with different identifiers.
- Remove the handler when it is no longer needed to avoid memory leaks.
Method
Dart
static void addMessageHandler(String identifier, MessageHandler handler)
Parameters
| Parameter | Type | Description |
|---|---|---|
identifier | String | A unique ID for this handler. |
handler | MessageHandler | Handler with callback properties for each event type. |
MessageReceivedEvent
| Property | Type | Description |
|---|---|---|
message | Message | The received message object. |
left | int? | Remaining messages in the current compensation package. After connection, the server delivers missed messages in packages of up to 200. |
offline | bool? | Whether the message is a missed message. |
hasPackage | bool? | 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.
hasPackageindicates whether more packages remain.leftindicates how many messages remain in the current package.- All missed messages are received when
hasPackageisfalseandleftis0.