MessageHandlerRegistry.ts 570 Bytes
import { Connection } from "../connection/Connection";
import { loginHandler } from "./handler/LoginHandler";
import { MessageType } from "./types";

export class MessageHandlerRegistry {
  static registerHandlers(connection: Connection) {
    this.registerHandler(connection, MessageType.LOGIN, loginHandler);
  }

  private static registerHandler<T>(
    connection: Connection,
    typeName: string,
    handler: (connection: Connection, message: T) => void
  ) {
    connection.socket.on(typeName, (message: T) => {
      handler(connection, message);
    });
  }
}