afrokick 4 жил өмнө
parent
commit
78c1283408

+ 4 - 5
dist/src/services/webSocketServer/index.js

@@ -10,19 +10,18 @@ const enums_1 = require("../../enums");
 const client_1 = require("../../models/client");
 const client_1 = require("../../models/client");
 const WS_PATH = 'peerjs';
 const WS_PATH = 'peerjs';
 class WebSocketServer extends events_1.default {
 class WebSocketServer extends events_1.default {
-    constructor({ server, realm, config, messagesTransport }) {
+    constructor({ server, realm, config }) {
         var _a;
         var _a;
         super();
         super();
         this.setMaxListeners(0);
         this.setMaxListeners(0);
         this.realm = realm;
         this.realm = realm;
         this.config = config;
         this.config = config;
-        this.messagesTransport = messagesTransport;
         const path = this.config.path;
         const path = this.config.path;
         this.path = `${path}${path.endsWith('/') ? "" : "/"}${WS_PATH}`;
         this.path = `${path}${path.endsWith('/') ? "" : "/"}${WS_PATH}`;
         this.socketServer = new ws_1.default.Server({ path: this.path, server });
         this.socketServer = new ws_1.default.Server({ path: this.path, server });
         this.socketServer.on("connection", (socket, req) => this._onSocketConnection(socket, req));
         this.socketServer.on("connection", (socket, req) => this._onSocketConnection(socket, req));
         this.socketServer.on("error", (error) => this._onSocketError(error));
         this.socketServer.on("error", (error) => this._onSocketError(error));
-        (_a = this.messagesTransport) === null || _a === void 0 ? void 0 : _a.registerHanadler((message) => this._handleMessage(message));
+        (_a = this.config.messagesTransport) === null || _a === void 0 ? void 0 : _a.registerHanadler((message) => this._handleMessage(message));
     }
     }
     _onSocketConnection(socket, req) {
     _onSocketConnection(socket, req) {
         var _a;
         var _a;
@@ -77,8 +76,8 @@ class WebSocketServer extends events_1.default {
             try {
             try {
                 const message = JSON.parse(data);
                 const message = JSON.parse(data);
                 message.src = client.getId();
                 message.src = client.getId();
-                if (message.type !== "HEARTBEAT" && this.messagesTransport) {
-                    this.messagesTransport.sendMessage(message);
+                if (message.type !== "HEARTBEAT" && this.config.messagesTransport) {
+                    this.config.messagesTransport.sendMessage(message);
                     return;
                     return;
                 }
                 }
                 this.emit("message", client, message);
                 this.emit("message", client, message);

+ 6 - 0
index.d.ts

@@ -26,6 +26,7 @@ declare interface IConfig {
     cert: string;
     cert: string;
   };
   };
   readonly generateClientId?: () => string;
   readonly generateClientId?: () => string;
+  readonly messagesTransport?: MessagesTransport;
 }
 }
 
 
 declare interface IClient {
 declare interface IClient {
@@ -65,6 +66,11 @@ declare interface CustomExpress extends Express.Express {
   on(event: 'error', callback: (error: Error) => void): this;
   on(event: 'error', callback: (error: Error) => void): this;
 }
 }
 
 
+declare type MessagesTransport = {
+  registerHanadler(handler: (message: { type: string; dst?: string; } & any) => boolean): void;
+  sendMessage(message: { type: string; src: string; } & any): void;
+};
+
 declare function ExpressPeerServer(server: Server, options?: IConfig): CustomExpress;
 declare function ExpressPeerServer(server: Server, options?: IConfig): CustomExpress;
 declare function PeerServer(options?: Optional<IConfig>, callback?: (server: Server) => void): CustomExpress;
 declare function PeerServer(options?: Optional<IConfig>, callback?: (server: Server) => void): CustomExpress;
 
 

+ 6 - 0
src/config/index.ts

@@ -1,3 +1,8 @@
+type MessagesTransport = {
+  registerHanadler(handler: (message: { type: string; dst?: string; } & any) => boolean): void;
+  sendMessage(message: { type: string; src: string; } & any): void;
+};
+
 export interface IConfig {
 export interface IConfig {
   readonly host: string;
   readonly host: string;
   readonly port: number;
   readonly port: number;
@@ -14,6 +19,7 @@ export interface IConfig {
     cert: string;
     cert: string;
   };
   };
   readonly generateClientId?: () => string;
   readonly generateClientId?: () => string;
+  readonly messagesTransport?: MessagesTransport;
 }
 }
 
 
 const defaultConfig: IConfig = {
 const defaultConfig: IConfig = {

+ 5 - 13
src/services/webSocketServer/index.ts

@@ -18,12 +18,7 @@ interface IAuthParams {
   key?: string;
   key?: string;
 }
 }
 
 
-type CustomConfig = Pick<IConfig, 'path' | 'key' | 'concurrent_limit'>;
-
-type MessagesTransport = {
-  registerHanadler(handler: (message: { type: string; dst?: string; } & any) => boolean): void;
-  sendMessage(message: { type: string; src: string; } & any): void;
-};
+type CustomConfig = Pick<IConfig, 'path' | 'key' | 'concurrent_limit' | 'messagesTransport'>;
 
 
 const WS_PATH = 'peerjs';
 const WS_PATH = 'peerjs';
 
 
@@ -31,7 +26,6 @@ type Dependencies = {
   server: any;
   server: any;
   realm: IRealm;
   realm: IRealm;
   config: CustomConfig;
   config: CustomConfig;
-  messagesTransport?: MessagesTransport;
 };
 };
 
 
 export class WebSocketServer extends EventEmitter implements IWebSocketServer {
 export class WebSocketServer extends EventEmitter implements IWebSocketServer {
@@ -41,16 +35,14 @@ export class WebSocketServer extends EventEmitter implements IWebSocketServer {
 
 
   private readonly realm: IRealm;
   private readonly realm: IRealm;
   private readonly config: CustomConfig;
   private readonly config: CustomConfig;
-  private readonly messagesTransport?: MessagesTransport;
 
 
-  constructor({ server, realm, config, messagesTransport }: Dependencies) {
+  constructor({ server, realm, config }: Dependencies) {
     super();
     super();
 
 
     this.setMaxListeners(0);
     this.setMaxListeners(0);
 
 
     this.realm = realm;
     this.realm = realm;
     this.config = config;
     this.config = config;
-    this.messagesTransport = messagesTransport;
 
 
     const path = this.config.path;
     const path = this.config.path;
     this.path = `${path}${path.endsWith('/') ? "" : "/"}${WS_PATH}`;
     this.path = `${path}${path.endsWith('/') ? "" : "/"}${WS_PATH}`;
@@ -60,7 +52,7 @@ export class WebSocketServer extends EventEmitter implements IWebSocketServer {
     this.socketServer.on("connection", (socket: MyWebSocket, req) => this._onSocketConnection(socket, req));
     this.socketServer.on("connection", (socket: MyWebSocket, req) => this._onSocketConnection(socket, req));
     this.socketServer.on("error", (error: Error) => this._onSocketError(error));
     this.socketServer.on("error", (error: Error) => this._onSocketError(error));
 
 
-    this.messagesTransport?.registerHanadler((message) => this._handleMessage(message));
+    this.config.messagesTransport?.registerHanadler((message) => this._handleMessage(message));
   }
   }
 
 
   private _onSocketConnection(socket: MyWebSocket, req: IncomingMessage): void {
   private _onSocketConnection(socket: MyWebSocket, req: IncomingMessage): void {
@@ -138,8 +130,8 @@ export class WebSocketServer extends EventEmitter implements IWebSocketServer {
 
 
         message.src = client.getId();
         message.src = client.getId();
 
 
-        if (message.type !== "HEARTBEAT" && this.messagesTransport) {
-          this.messagesTransport.sendMessage(message);
+        if (message.type !== "HEARTBEAT" && this.config.messagesTransport) {
+          this.config.messagesTransport.sendMessage(message);
           return;
           return;
         }
         }