commit c50dbd5b1892746156522d3587f56f2f9c47c51f Author: Kubbo <390378816@qq.com> Date: Wed Apr 9 08:19:17 2025 +0800 feat: 添加 GateServer 模块并创建服务端基础框架 - 新增 GateServer 类,实现基本的 TCP 服务器功能 - 创建服务端启动脚本,定义数据处理和事件监听逻辑 - 添加 package.json 文件,配置项目信息和启动脚本 diff --git a/GateServer/index.js b/GateServer/index.js new file mode 100644 index 0000000..7f8d565 --- /dev/null +++ b/GateServer/index.js @@ -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; \ No newline at end of file diff --git a/GateServer/start.js b/GateServer/start.js new file mode 100644 index 0000000..7ea1a21 --- /dev/null +++ b/GateServer/start.js @@ -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(); \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..17f411c --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "node-mir-server", + "version": "1.0.0", + "description": "冰雪传奇服务端", + "scripts": { + "gateway": "node GateServer/start.js" + }, + "keywords": [ + "mir", + "server" + ], + "author": "kubbo", + "license": "ISC" +}