import { createWorker as mediasoupCreateWorker } from 'mediasoup'; import logger from 'modules/winston/logger'; import { workerSettings } from './config'; /** * * For now, each channel uses its own worker * ! Do not create more Workers than the number of CPU-Cores */ export const createWorker = async () => { const worker = await mediasoupCreateWorker(workerSettings); logger.info(`Mediasoup worker created`, { service: 'mediasoup' }); worker.on('died', (error) => { // This implies something serious happened, so kill the application logger.error(`Mediasoup worker crashed! ${error}`, { error, service: 'mediasoup' }); setTimeout(() => process.exit(1), 2000); // exit in 2 seconds }); return worker; };