X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=examples%2Ftypescript%2Fwebsocket-server-pool%2Fws-hybrid%2Fsrc%2Fwebsocket-server-worker.ts;h=437fae1b45600c5cb0bc700d690569c820b44b5e;hb=d18fccb1e77f6c835369675a69dc546825edf50c;hp=0a1cbdfd956b04265e277b13c5607dad6af5cc37;hpb=5daad283d56413b7287cca894637a35e51a1222c;p=poolifier.git diff --git a/examples/typescript/websocket-server-pool/ws-hybrid/src/websocket-server-worker.ts b/examples/typescript/websocket-server-pool/ws-hybrid/src/websocket-server-worker.ts index 0a1cbdfd..437fae1b 100644 --- a/examples/typescript/websocket-server-pool/ws-hybrid/src/websocket-server-worker.ts +++ b/examples/typescript/websocket-server-pool/ws-hybrid/src/websocket-server-worker.ts @@ -31,22 +31,25 @@ ClusterWorkerResponse private static readonly startWebSocketServer = ( workerData?: ClusterWorkerData ): ClusterWorkerResponse => { - const { port } = workerData as ClusterWorkerData - WebSocketServerWorker.wss = new WebSocketServer({ port }, () => { - console.info( - `⚡️[ws server]: WebSocket server is started in cluster worker at ws://localhost:${port}/` - ) - }) + const { port, workerFile, minWorkers, maxWorkers, ...poolOptions } = + workerData as ClusterWorkerData WebSocketServerWorker.requestHandlerPool = new DynamicThreadPool< ThreadWorkerData, ThreadWorkerResponse >( - workerData?.minWorkers ?? 1, - workerData?.maxWorkers ?? availableParallelism(), - workerData?.workerFile as string + minWorkers ?? 1, + maxWorkers ?? availableParallelism(), + workerFile, + poolOptions ) + WebSocketServerWorker.wss = new WebSocketServer({ port }, () => { + console.info( + `⚡️[ws server]: WebSocket server is started in cluster worker at ws://localhost:${port}/` + ) + }) + WebSocketServerWorker.wss.on('connection', (ws) => { ws.on('error', console.error) ws.on('message', (message: RawData) => { @@ -94,7 +97,8 @@ ClusterWorkerResponse public constructor () { super(WebSocketServerWorker.startWebSocketServer, { - killHandler: () => { + killHandler: async () => { + await WebSocketServerWorker.requestHandlerPool.destroy() WebSocketServerWorker.wss.close() } })