diff --git a/dist/src/instance.js b/dist/src/instance.js index 9382bf0..c528f02 100644 --- a/dist/src/instance.js +++ b/dist/src/instance.js @@ -27,12 +27,12 @@ const createInstance = ({ app, server, options }) => { app.use(options.path, api); //use mountpath for WS server const customConfig = Object.assign(Object.assign({}, config), { path: path_1.default.posix.join(app.path(), options.path, '/') }); - const wss = new webSocketServer_1.WebSocketServer({ + const wss2 = new webSocketServer_1.WebSocketServer({ server, realm, config: customConfig }); - wss.on("connection", (client) => { + wss2.on("connection", (client) => { const messageQueue = realm.getMessageQueueById(client.getId()); if (messageQueue) { let message; @@ -43,14 +43,14 @@ const createInstance = ({ app, server, options }) => { } app.emit("connection", client); }); - wss.on("message", (client, message) => { + wss2.on("message", (client, message) => { app.emit("message", client, message); messageHandler.handle(client, message); }); - wss.on("close", (client) => { + wss2.on("close", (client) => { app.emit("disconnect", client); }); - wss.on("error", (error) => { + wss2.on("error", (error) => { app.emit("error", error); }); messagesExpire.startMessagesExpiration(); diff --git a/package-lock.json b/package-lock.json index 601caf5..fc389bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "peer", - "version": "0.6.1", + "version": "0.6.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/config/index.ts b/src/config/index.ts index b048d16..a3469fa 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -1,3 +1,5 @@ +import {ServerOptions as WsConfig} from 'ws'; + export interface IConfig { readonly host: string; readonly port: number; @@ -14,6 +16,7 @@ export interface IConfig { cert: string; }; readonly generateClientId?: () => string; + readonly ws?: WsConfig; } const defaultConfig: IConfig = { diff --git a/src/instance.ts b/src/instance.ts index f59bf8c..4789205 100644 --- a/src/instance.ts +++ b/src/instance.ts @@ -34,15 +34,20 @@ export const createInstance = ({ app, server, options }: { app.use(options.path, api); //use mountpath for WS server - const customConfig = { ...config, path: path.posix.join(app.path(), options.path, '/') }; + const customConfig = { + ...config, + path: path.posix.join(app.path(), options.path, '/'), + }; - const wss2: IWebSocketServer = new WebSocketServer({ + const wss: IWebSocketServer = new WebSocketServer({ server, realm, config: customConfig }); - wss2.on("connection", (client: IClient) => { + app.set('peerWs', wss); + + wss.on("connection", (client: IClient) => { const messageQueue = realm.getMessageQueueById(client.getId()); if (messageQueue) { @@ -57,16 +62,16 @@ export const createInstance = ({ app, server, options }: { app.emit("connection", client); }); - wss2.on("message", (client: IClient, message: IMessage) => { + wss.on("message", (client: IClient, message: IMessage) => { app.emit("message", client, message); messageHandler.handle(client, message); }); - wss2.on("close", (client: IClient) => { + wss.on("close", (client: IClient) => { app.emit("disconnect", client); }); - wss2.on("error", (error: Error) => { + wss.on("error", (error: Error) => { app.emit("error", error); }); diff --git a/src/services/webSocketServer/index.ts b/src/services/webSocketServer/index.ts index d9f2c5e..e3b4097 100644 --- a/src/services/webSocketServer/index.ts +++ b/src/services/webSocketServer/index.ts @@ -18,7 +18,7 @@ interface IAuthParams { key?: string; } -type CustomConfig = Pick; +type CustomConfig = Pick; const WS_PATH = 'peerjs'; @@ -40,7 +40,11 @@ export class WebSocketServer extends EventEmitter implements IWebSocketServer { const path = this.config.path; this.path = `${path}${path.endsWith('/') ? "" : "/"}${WS_PATH}`; - this.socketServer = new WebSocketLib.Server({ path: this.path, server }); + this.socketServer = new WebSocketLib.Server({ + path: this.path, + server, + ...this.config.ws, + }); this.socketServer.on("connection", (socket: MyWebSocket, req) => this._onSocketConnection(socket, req)); this.socketServer.on("error", (error: Error) => this._onSocketError(error));