File size: 1,147 Bytes
eee16fe | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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,
});
}
}
|