import Server from '@/core/interface/server/Server'; import AuthConnection from '@/auth/interface/networking/AuthConnection'; import { Socket } from 'node:net'; export default class AuthServer extends Server { async onData(connection: AuthConnection, data: Buffer) { this.container.containerInstance.createScope(); this.logger.debug(`[IN][DATA SOCKET EVENT] Data received from ID: ${connection.getId()}`); const header = data[0]; const packetBuilder = this.packets.get(header); if (!packetBuilder) { this.logger.debug(`[IN][PACKET] Unknown header packet: ${data[0]}`); return; } const { createPacket, createHandler } = packetBuilder; const packet = createPacket({}); const handler = createHandler(this.container); this.logger.debug(`[IN][PACKET] name: ${handler.constructor.name}`); handler.execute(connection, packet.unpack(data)).catch((err) => this.logger.error(err)); } createConnection(socket: Socket) { return new AuthConnection({ socket, logger: this.logger, }); } }