Skip to main content

Delete messages

Delete messages from your own view in a channel.

Delete messages (for yourself only)

Remove messages from your own view. Other participants still see the messages:

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

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

// First, retrieve the message objects you want to delete
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) {
// Pass Message objects to deleteMessagesForMe
const { code: deleteCode } = await channel.deleteMessagesForMe([page.data[0]]);
if (deleteCode === 0) {
console.log('Message deleted for self');
}
}

Parameters

ParameterTypeRequiredDescription
messagesMessage<any>[]YesMessage objects to delete for the current user

Return value

FieldTypeDescription
isOkbooleanWhether the delete request succeeded
codenumberStatus code. 0 means success.

Delete a message for all participants

Remove a single message for everyone in the channel:

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

const channel = new DirectChannel('<target-user-id>');
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 deleted for all participants');
}
}

Delete messages by timestamp

Delete all messages in a channel before a given timestamp from your own view only:

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

const channel = new DirectChannel('<target-user-id>');
const { code } = await channel.deleteMessagesForMeByTimestamp({ timestamp: Date.now() });
if (code === 0) {
console.log('Messages cleared');
}

Parameters

ParameterTypeRequiredDescription
timestampnumberYesClear messages sent before this Unix timestamp in milliseconds
warning
  • deleteMessagesForMe only removes the message from the current user's view. Other participants are not affected.
  • deleteMessageForAll removes one message for all participants in the channel.
  • deleteMessagesForMeByTimestamp clears messages before the specified timestamp only for the current user.