Interface MessageHandler
-
- All Implemented Interfaces:
public interface MessageHandlerMessage event handler.
Listens for all message-related event notifications, including:
Receive: real-time and offline message reception, offline sync completion
Lifecycle: message deletion (recall), modification, and blocking (sensitive word filtering)
Read receipts: read receipt responses from other users
Metadata: message metadata (expansion) updates and deletions
Speech-to-text: voice message transcription completion
Stream messages: stream request init, incremental chunks, and completion
Community: community channel message metadata changes
Register via NCEngine.addMessageHandler. All callback methods have default empty implementations; override only the callbacks you need.
NCEngine.addMessageHandler("MSG_HANDLER_ID", object : MessageHandler { override fun onMessageReceived(event: MessageReceivedEvent) { println("Received: ${event.message.messageId}") } override fun onMessageReceiptResponse(event: MessageReceiptResponseEvent) { event.responses.forEach { response -> println("Message ${response.messageId} read count: ${response.readCount}") } } override fun onMessageBlocked(event: MessageBlockedEvent) { println("Message blocked: ${event.info.messageId}, reason: ${event.info.blockType}") } })
-
-
Method Summary
Modifier and Type Method Description UnitonMessageReceived(MessageReceivedEvent event)Called when a message is received. UnitonOfflineMessageSyncCompleted(OfflineMessageSyncCompletedEvent event)Called when offline message sync completes. UnitonMessageDeleted(MessageDeletedEvent event)Called when a message is deleted (recalled). UnitonSpeechToTextCompleted(SpeechToTextCompletedEvent event)Called when speech-to-text conversion completes. UnitonMessagesModified(MessagesModifiedEvent event)Called when a message is modified. UnitonMessageMetadataUpdated(MessageMetadataUpdatedEvent event)Called when message metadata (expansion) is updated. UnitonMessageMetadataDeleted(MessageMetadataDeletedEvent event)Called when message metadata (expansion) keys are deleted. UnitonCommunityChannelMessageMetadataChanged(CommunityChannelMessageMetadataChangedEvent event)Called when community channel message metadata (expansion) is changed. UnitonMessageReceiptResponse(MessageReceiptResponseEvent event)Called when read receipts are received. UnitonMessageBlocked(MessageBlockedEvent event)Called when a sent message is blocked due to sensitive words. UnitonStreamMessageRequestInit(StreamMessageRequestInitEvent event)Called when a stream message request is initialized. UnitonStreamMessageRequestDelta(StreamMessageDeltaEvent event)Called when an incremental stream chunk is received. UnitonStreamMessageRequestComplete(StreamMessageRequestCompleteEvent event)Called when a stream message request completes. UnitonModifiedMessageSyncCompleted(ModifiedMessageSyncCompletedEvent event)Called when offline modified message records have been fully synced. -
-
Method Detail
-
onMessageReceived
Unit onMessageReceived(MessageReceivedEvent event)
Called when a message is received.
Triggered when a real-time or offline message is received.
Offline message judgment logic:
The server packages up to 200 messages at a time and sends them to the client
MessageReceivedEvent.hasPackage indicates whether there are remaining message packages
MessageReceivedEvent.left indicates the remaining unprocessed message count in the current package
When both are 0, all offline messages have been received
- Parameters:
event- Message received event containing messages and delivery info
-
onOfflineMessageSyncCompleted
Unit onOfflineMessageSyncCompleted(OfflineMessageSyncCompletedEvent event)
Called when offline message sync completes.
Triggered once per successful connection. If there are no remote messages, it is triggered immediately after connection. If there are many history messages, it is triggered after all messages have been received.
- Parameters:
event- Offline message sync completed event
-
onMessageDeleted
Unit onMessageDeleted(MessageDeletedEvent event)
Called when a message is deleted (recalled).
- Parameters:
event- Message deleted event containing deleted messages or identifiers
-
onSpeechToTextCompleted
Unit onSpeechToTextCompleted(SpeechToTextCompletedEvent event)
Called when speech-to-text conversion completes.
- Parameters:
event- Speech-to-text completed event containing result info
-
onMessagesModified
Unit onMessagesModified(MessagesModifiedEvent event)
Called when a message is modified.
- Parameters:
event- Message modified event containing modified messages
-
onMessageMetadataUpdated
Unit onMessageMetadataUpdated(MessageMetadataUpdatedEvent event)
Called when message metadata (expansion) is updated.
The MessageMetadataUpdatedEvent.metadata only contains the updated key-value pairs, not all data. To get all key-value pairs, use the message's metadata property.
- Parameters:
event- Metadata updated event containing the updated pairs and related message
-
onMessageMetadataDeleted
Unit onMessageMetadataDeleted(MessageMetadataDeletedEvent event)
Called when message metadata (expansion) keys are deleted.
- Parameters:
event- Metadata deleted event containing the deleted keys and related message
-
onCommunityChannelMessageMetadataChanged
Unit onCommunityChannelMessageMetadataChanged(CommunityChannelMessageMetadataChangedEvent event)
Called when community channel message metadata (expansion) is changed.
- Parameters:
event- Event containing messages whose metadata has been changed
-
onMessageReceiptResponse
Unit onMessageReceiptResponse(MessageReceiptResponseEvent event)
Called when read receipts are received.
- Parameters:
event- Read receipt response event containing receipt data
-
onMessageBlocked
Unit onMessageBlocked(MessageBlockedEvent event)
Called when a sent message is blocked due to sensitive words.
- Parameters:
event- Message blocked event containing detailed info
-
onStreamMessageRequestInit
Unit onStreamMessageRequestInit(StreamMessageRequestInitEvent event)
Called when a stream message request is initialized.
If the message was previously interrupted abnormally, the abnormal data will be cleaned up before this callback is triggered.
- Parameters:
event- Event containing the server-side unique message ID
-
onStreamMessageRequestDelta
Unit onStreamMessageRequestDelta(StreamMessageDeltaEvent event)
Called when an incremental stream chunk is received.
The StreamMessageDeltaEvent.message contains the aggregated content so far, while StreamMessageDeltaEvent.chunkInfo contains only the incremental content of this chunk.
- Parameters:
event- Stream message delta event containing message and chunk info
-
onStreamMessageRequestComplete
Unit onStreamMessageRequestComplete(StreamMessageRequestCompleteEvent event)
Called when a stream message request completes.
- Parameters:
event- Event containing the message ID and optional error
-
onModifiedMessageSyncCompleted
Unit onModifiedMessageSyncCompleted(ModifiedMessageSyncCompletedEvent event)
Called when offline modified message records have been fully synced.
- Parameters:
event- Modified message sync completed event
-
-
-
-