Skip to main content

Monitor open channel events

Listen for open channel events such as users joining, leaving, being kicked, and metadata changes by registering an OpenChannelHandler.

Register an open channel event handler

TypeScript
import {
NCEngine,
OpenChannelHandler,
OpenChannelEnteredEvent,
OpenChannelEnterFailedEvent,
OpenChannelExitedEvent,
OpenChannelDestroyedEvent,
OpenChannelMetadataChangedEvent,
OpenChannelMetadataSyncedEvent,
OpenChannelMemberChangedEvent,
OpenChannelMemberMutedEvent,
OpenChannelMemberBannedEvent,
OpenChannelNotifyMultiLoginSyncEvent,
} from '@nexconn/chat';

NCEngine.addOpenChannelHandler('open-channel-handler', new OpenChannelHandler({
onEntered(event: OpenChannelEnteredEvent): void {
console.log('Joined open channel:', event.channelId, event.response);
},
onEnterFailed(event: OpenChannelEnterFailedEvent): void {
console.log('Failed to join open channel:', event.channelId, 'code:', event.code);
},
onExited(event: OpenChannelExitedEvent): void {
console.log('Left open channel:', event.channelId);
},
onChannelDestroyed(event: OpenChannelDestroyedEvent): void {
console.log('Open channel destroyed:', event.channelId);
},
onMetadataChanged(event: OpenChannelMetadataChangedEvent): void {
console.log('Open channel metadata changed:', event.changeInfo);
},
onMetadataSynced(event: OpenChannelMetadataSyncedEvent): void {
console.log('Open channel metadata synced:', event.channelId);
},
onMemberChanged(event: OpenChannelMemberChangedEvent): void {
console.log('Member joined or left:', event.actions);
},
onMemberMuted(event: OpenChannelMemberMutedEvent): void {
console.log('Member muted:', event.info);
},
onMemberBanned(event: OpenChannelMemberBannedEvent): void {
console.log('Member kicked:', event.info);
},
onNotifyMultiLoginSync(event: OpenChannelNotifyMultiLoginSyncEvent): void {
console.log('Multi-device open channel sync:', event.info);
},
}));

Remove the handler when it is no longer needed:

TypeScript
NCEngine.removeOpenChannelHandler('open-channel-handler');

Open channel events

CallbackDescription
onEnteredCurrent user successfully joined the open channel
onEnterFailedCurrent user failed to join the open channel
onExitedCurrent user left the open channel
onChannelDestroyedThe open channel was destroyed
onMetadataChangedOpen channel metadata (KV entries) were updated
onMetadataSyncedOpen channel metadata sync completed
onMemberChangedA user joined or left the open channel
onMemberMutedA member was muted or unmuted in the open channel
onMemberBannedA member was banned or unbanned from the open channel
onNotifyMultiLoginSyncMulti-device join/leave sync notification
tip

Register the handler before calling enterChannel() to ensure you receive the onEntered callback.