Delete a message (recall)
Delete a message in a community subchannel to remove it from all participants' message history.
Delete a message
Use channel.deleteMessageForAll(message), passing the Message object:
TypeScript
import { CommunitySubChannel, BaseChannel, Message } from '@nexconn/chat';
const channel = new CommunitySubChannel('<communityId>', '<subChannelId>');
// First 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: recallCode } = await channel.deleteMessageForAll(page.data[0]);
if (recallCode === 0) {
console.log('Message recalled');
} else {
console.log('Recall failed. Code:', recallCode);
}
}
Handle deletion notifications
When a message is deleted, all connected users receive a notification:
TypeScript
import { NCEngine, MessageHandler } from '@nexconn/chat';
NCEngine.addMessageHandler('community-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.