32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
|
const EventEmitter = require('events');
|
||
|
|
||
|
const clientJoinEvent = 'clientJoin';
|
||
|
const clientLeaveEvent = 'clientLeave';
|
||
|
|
||
|
class ClientEventsEmitter extends EventEmitter {
|
||
|
emitClientJoin(clientUUid: string, roomId: string): void {
|
||
|
this.emit(clientJoinEvent, clientUUid, roomId);
|
||
|
}
|
||
|
|
||
|
emitClientLeave(clientUUid: string, roomId: string): void {
|
||
|
this.emit(clientLeaveEvent, clientUUid, roomId);
|
||
|
}
|
||
|
|
||
|
registerToClientJoin(callback: (clientUUid: string, roomId: string) => void): void {
|
||
|
this.on(clientJoinEvent, callback);
|
||
|
}
|
||
|
|
||
|
registerToClientLeave(callback: (clientUUid: string, roomId: string) => void): void {
|
||
|
this.on(clientLeaveEvent, callback);
|
||
|
}
|
||
|
|
||
|
unregisterFromClientJoin(callback: (clientUUid: string, roomId: string) => void): void {
|
||
|
this.removeListener(clientJoinEvent, callback);
|
||
|
}
|
||
|
|
||
|
unregisterFromClientLeave(callback: (clientUUid: string, roomId: string) => void): void {
|
||
|
this.removeListener(clientLeaveEvent, callback);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export const clientEventsEmitter = new ClientEventsEmitter();
|