openvidu-browser: log error on filter event handlers when missing (https://github.com/OpenVidu/openvidu/pull/567)

pull/707/head
pabloFuente 2022-03-10 16:14:12 +01:00
parent 569a8a470c
commit 48b8bd5c5a
1 changed files with 14 additions and 5 deletions

View File

@ -1088,9 +1088,18 @@ export class Session extends EventDispatcher {
const connectionId: string = event.connectionId;
this.getConnection(connectionId, 'No connection found for connectionId ' + connectionId)
.then(connection => {
logger.info('Filter event dispatched');
logger.info(`Filter event of type "${event.eventType}" dispatched`);
const stream: Stream = connection.stream!;
stream.filter!.handlers.get(event.eventType)?.call(this, new FilterEvent(stream.filter!, event.eventType, event.data));
if (!stream || !stream.filter) {
return logger.error(`Filter event of type "${event.eventType}" dispatched for stream ${stream.streamId} but there is no ${!stream ? 'stream' : 'filter'} defined`);
}
const eventHandler = stream.filter.handlers.get(event.eventType);
if (!eventHandler || typeof eventHandler !== 'function') {
const actualHandlers: string[] = Array.from(stream.filter.handlers.keys());
return logger.error(`Filter event of type "${event.eventType}" not handled or not a function! Active filter events: ${actualHandlers.join(',')}`);
} else {
eventHandler.call(this, new FilterEvent(stream.filter, event.eventType, event.data));
}
});
}