const net = require('net'); const EventEmitter = require('events'); class GateServer extends EventEmitter { constructor(port, host) { super(); this.port = port; this.host = host; this.server = net.createServer(this.handleConnection.bind(this)); } start() { this.server.listen(this.port, this.host, () => { console.log(`GateServer is listening on ${this.host}:${this.port}`); }); } handleConnection(socket) { console.log('New client connected'); this.emit('connection', socket); socket.on('data', (data) => { this.emit('data', socket, data); }); socket.on('end', () => { console.log('Client disconnected'); this.emit('end', socket); }); socket.on('error', (err) => { console.error('Socket error:', err); this.emit('error', err); }); } } module.exports = GateServer;