1- import http from 'http'
2- import process from 'process'
3- import { WebSocketServer } from 'ws'
4-
5- import { createSettings } from '../factories/settings-factory'
6- import { IEventRepository } from '../@types/repositories'
71import { IRunnable } from '../@types/base'
8- import { webSocketAdapterFactory } from '../factories/websocket-adapter-factory'
9- import { WebSocketServerAdapter } from '../adapters/web-socket-server-adapter'
2+ import { IWebSocketServerAdapter } from '../@types/adapters'
103
114export class AppWorker implements IRunnable {
12- private webServer : http . Server
13- private wss : WebSocketServer
14- private adapter : WebSocketServerAdapter
15-
165 public constructor (
17- private readonly eventRepository : IEventRepository
6+ private readonly process : NodeJS . Process ,
7+ private readonly adapter : IWebSocketServerAdapter
188 ) {
19- this . webServer = http . createServer ( )
20- this . wss = new WebSocketServer ( { server : this . webServer , maxPayload : 1024 * 1024 } )
21- this . adapter = new WebSocketServerAdapter (
22- this . webServer ,
23- this . wss ,
24- webSocketAdapterFactory ( this . eventRepository ) ,
25- createSettings ,
26- )
27-
289 process
29- . on ( 'message' , ( message : { eventName : string , event : unknown } ) => {
30- this . adapter . emit ( message . eventName , message . event )
31- } )
10+ . on ( 'message' , this . onMessage . bind ( this ) )
3211 . on ( 'SIGINT' , this . onExit . bind ( this ) )
3312 . on ( 'SIGHUP' , this . onExit . bind ( this ) )
3413 . on ( 'SIGTERM' , this . onExit . bind ( this ) )
@@ -44,20 +23,22 @@ export class AppWorker implements IRunnable {
4423 console . log ( `worker ${ process . pid } - listening on port ${ port } ` )
4524 }
4625
26+ private onMessage ( message : { eventName : string , event : unknown } ) : void {
27+ this . adapter . emit ( message . eventName , message . event )
28+ }
29+
4730 private onError ( error : Error ) {
4831 console . error ( `worker ${ process . pid } - error` , error )
4932 throw error
5033 }
5134
5235 private onExit ( ) {
5336 console . log ( `worker ${ process . pid } - exiting` )
54- this . wss . close ( ( ) => {
55- this . webServer . close ( ( ) => {
56- // dbClient.destroy(() => {
57- // process.exit(0)
58- // })
59- process . exit ( 0 )
60- } )
37+ this . adapter . close ( ( ) => {
38+ // dbClient.destroy(() => {
39+ // process.exit(0)
40+ // })
41+ process . exit ( 0 )
6142 } )
6243 }
6344}
0 commit comments