diff --git a/package-lock.json b/package-lock.json index 5c8cea4..e225086 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,6 @@ "@types/mongoose": "^5.5.15", "@types/morgan": "^1.7.37", "@types/node": "^12.7.2", - "@types/node-ipc": "^9.1.1", "@types/passport": "^1.0.1", "@types/passport-discord": "^0.1.3", "@types/passport-local": "^1.0.33", @@ -126,7 +125,6 @@ "mongoose": "^5.6.11", "morgan": "^1.9.1", "ngx-bootstrap": "^18.0.1", - "node-ipc": "^9.1.1", "parallel-webpack": "^2.4.0", "passport": "^0.4.0", "passport-deviantart": "0.0.5", @@ -6374,19 +6372,6 @@ "@types/node": "*" } }, - "node_modules/@types/node-ipc": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/node-ipc/-/node-ipc-9.1.1.tgz", - "integrity": "sha512-0NoDCXvNJagYdg0SnXw7aDuxJyzy1cQevRVlCdTM4q0xAQ7Tg5VbQ9jpreKGOaLyql8r9T60hy/wA/QDIk1+Lg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node-ipc/node_modules/@types/node": { - "version": "12.7.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz", - "integrity": "sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==" - }, "node_modules/@types/oauth": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.1.tgz", diff --git a/package.json b/package.json index 38b39ad..0314f08 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,6 @@ "@types/mongoose": "^5.5.15", "@types/morgan": "^1.7.37", "@types/node": "^12.7.2", - "@types/node-ipc": "^9.1.1", "@types/passport": "^1.0.1", "@types/passport-discord": "^0.1.3", "@types/passport-local": "^1.0.33", @@ -168,7 +167,6 @@ "mongoose": "^5.6.11", "morgan": "^1.9.1", "ngx-bootstrap": "^18.0.1", - "node-ipc": "^9.1.1", "parallel-webpack": "^2.4.0", "passport": "^0.4.0", "passport-deviantart": "0.0.5", diff --git a/src/ts/server/ipc.ts b/src/ts/server/ipc.ts deleted file mode 100644 index defa8ed..0000000 --- a/src/ts/server/ipc.ts +++ /dev/null @@ -1,98 +0,0 @@ -import * as ipc from 'node-ipc'; - -export interface LoginServer { - hello(message: string): Promise; -} - -export interface GameServer { - something(): Promise; -} - -interface SocketState { - server: TServer; - client: TClient; -} - -export function startIPCServer( - id: string, createServer: (client: TClient) => TServer -) { - ipc.config.id = id; - ipc.config.retry = 500; - ipc.config.silent = true; - ipc.serve(() => { - const sockets = new Map>(); - - ipc.server.on('connect', (socket) => { - console.log('server:connect'); - const client: TClient = new Proxy({} as any, { - get: (_, key) => (...args: any[]) => { - ipc.server.emit(socket, 'message', [key, args]); - }, - }); - const server = createServer(client); - sockets.set(socket, { server, client }); - }); - - ipc.server.on('message', (data, socket) => { - console.log('server:message', data); - const socketState = sockets.get(socket); - - if (socketState) { - (socketState.server as any)[data[0]](...data[1]); - } else { - console.error('missing server for socket'); - } - }); - - ipc.server.on('error', (error) => { - console.log('server:error', error); - }); - - ipc.server.on('disconnect', (socket) => { - console.log('server:disconnect'); - sockets.delete(socket); - }); - - ipc.server.on('socket.disconnected', (socket, _destroyedSocketID) => { - console.log('server:socket.disconnected'); - sockets.delete(socket); - }); - }); - - ipc.server.start(); -} - -export function startIPCClient( - serverId: string, clientId: string, createClient: (server: TServer) => TClient -) { - ipc.config.id = clientId; - ipc.config.retry = 500; - ipc.config.silent = true; - ipc.connectTo(serverId, () => { - let connected = false; - const socket = ipc.of[serverId]; - const server: TServer = new Proxy({} as any, { - get: (_, key) => (...args: any[]) => { - socket.emit('message', [key, args]); - }, - }); - const client = createClient(server); - - socket.on('connect', () => { - connected = true; - console.log('client:connect'); - }); - - socket.on('disconnect', () => { - if (connected) { - connected = false; - console.log('client:disconnect'); - } - }); - - socket.on('message', (data: any) => { - console.log('client:message', data); - (client as any)[data[0]](...data[1]); - }); - }); -}