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
| Callback | Description |
|---|---|
onEntered | Current user successfully joined the open channel |
onEnterFailed | Current user failed to join the open channel |
onExited | Current user left the open channel |
onChannelDestroyed | The open channel was destroyed |
onMetadataChanged | Open channel metadata (KV entries) were updated |
onMetadataSynced | Open channel metadata sync completed |
onMemberChanged | A user joined or left the open channel |
onMemberMuted | A member was muted or unmuted in the open channel |
onMemberBanned | A member was banned or unbanned from the open channel |
onNotifyMultiLoginSync | Multi-device join/leave sync notification |
tip
Register the handler before calling enterChannel() to ensure you receive the onEntered callback.