Skip to main content

Delete a message

Delete a sent message so it is removed from all users' message history. Once deleted, the original message content is replaced with a notification for all participants.

Delete a message

First retrieve the message object, then call deleteMessageForAll:

TypeScript
import { DirectChannel, BaseChannel, Message } from '@nexconn/chat';

const channel = new DirectChannel('<target-user-id>');

// Retrieve the message object you want to recall
const query = BaseChannel.createMessagesQuery({
channelIdentifier: channel.identifier,
startTime: Date.now(),
pageSize: 20,
isAscending: false,
});
const { code, data: page } = await query.loadNextPage();

if (code === 0 && page.data.length > 0) {
const { code: deleteCode } = await channel.deleteMessageForAll(page.data[0]);
if (deleteCode === 0) {
console.log('Message deleteed for all participants');
} else {
console.log('Delete failed. Code:', recallCode);
}
}

Handle deletion notifications

When a message is deleted, all connected users receive a notification through the message listener. Update your UI to reflect the change:

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

NCEngine.addMessageHandler('recall-handler', new MessageHandler({
onMessageDeleted({ messages }): void {
messages.forEach((msg) => {
console.log('Message recalled:', msg.messageId);
});
},
}));
info
  • By default, only the message sender can delete their own messages.
  • Admins can be granted deletion permissions through server-side configuration.
  • There may be a time limit for deleting messages (configured on the server).