feat: 添加 GateServer 模块并创建服务端基础框架

- 新增 GateServer 类,实现基本的 TCP 服务器功能
- 创建服务端启动脚本,定义数据处理和事件监听逻辑
- 添加 package.json 文件,配置项目信息和启动脚本
This commit is contained in:
2025-04-09 08:19:17 +08:00
commit c50dbd5b18
3 changed files with 74 additions and 0 deletions

38
GateServer/index.js Normal file
View File

@@ -0,0 +1,38 @@
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;

22
GateServer/start.js Normal file
View File

@@ -0,0 +1,22 @@
const GateServer = require('./index');
const server = new GateServer(8080, '127.0.0.1');
server.on('connection', (socket) => {
console.log('A new client has connected');
});
server.on('data', (socket, data) => {
console.log('Received data:', data.toString());
socket.write('Echo: ' + data);
});
server.on('end', (socket) => {
console.log('Client has disconnected');
});
server.on('error', (err) => {
console.error('Server error:', err);
});
server.start();