From 2c16de674f7e7006fbf3147316b9b9aa71e9ea26 Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Thu, 2 Dec 2021 16:12:54 -0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=BF=20Created=20a=20socket=20mixin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mixins/socket.io.mixin.ts | 13 ++++++++++++- services/api.service.ts | 18 ++++-------------- services/libraryqueue.service.ts | 1 + 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/mixins/socket.io.mixin.ts b/mixins/socket.io.mixin.ts index 569ad28..000f2bb 100644 --- a/mixins/socket.io.mixin.ts +++ b/mixins/socket.io.mixin.ts @@ -1,5 +1,16 @@ import { Server } from "socket.io"; +import { createServer } from "http"; export const SocketIOMixin = () => { - + const socketServer = createServer(); + socketServer.listen(3001, `0.0.0.0`); + const socketIOConnection = new Server(socketServer, { + cors: { + origin: "*", + methods: "GET,HEAD,PUT,PATCH,POST,DELETE", + preflightContinue: false, + optionsSuccessStatus: 204, + }, + }); + return socketIOConnection; } \ No newline at end of file diff --git a/services/api.service.ts b/services/api.service.ts index c5ef100..dd45544 100644 --- a/services/api.service.ts +++ b/services/api.service.ts @@ -5,9 +5,8 @@ import path from "path"; import fs from "fs"; import { IExtractionOptions, IFolderData } from "threetwo-ui-typings"; import { createServer } from "http"; -import { Server } from "socket.io"; - -const socketServer = createServer(); +import { Server, Socket } from "socket.io"; +import { SocketIOMixin } from "../mixins/socket.io.mixin"; const SOCKET_HOST = process.env.DOCKER_HOST || `localhost`; export default class ApiService extends Service { public constructor(broker: ServiceBroker) { @@ -15,7 +14,7 @@ export default class ApiService extends Service { // @ts-ignore this.parseServiceSchema({ name: "api", - mixins: [ApiGateway], + mixins: [ApiGateway, SocketIOMixin], // More info about settings: https://moleculer.services/docs/0.14/moleculer-web.html settings: { port: process.env.PORT || 3000, @@ -94,16 +93,7 @@ export default class ApiService extends Service { methods: {}, started(): any { // Socket gateway-ish - // Create a Socket.IO instance, passing it our server - socketServer.listen(3001, `0.0.0.0`); - this.io = new Server(socketServer, { - cors: { - origin: "*", - methods: "GET,HEAD,PUT,PATCH,POST,DELETE", - preflightContinue: false, - optionsSuccessStatus: 204, - }, - }); + this.io = SocketIOMixin(); // Add a connect listener this.io.on("connection", (client) => { console.log("Client connected via websocket!"); diff --git a/services/libraryqueue.service.ts b/services/libraryqueue.service.ts index 59ba898..144346b 100644 --- a/services/libraryqueue.service.ts +++ b/services/libraryqueue.service.ts @@ -54,6 +54,7 @@ export default class LibraryQueueService extends Service { }, {} ); + return Promise.resolve({ dbImportResult,