Files
node-mir-server/GateServer/DataProcess.js
Kubbo 002e7214ce feat(server): 添加数据处理模块并增强服务器功能
- 新增 DataProcesser 类,用于处理数据包和管理会话
- 在 GateServer 中添加客户端管理、广播消息和服务器停止功能
- 优化 GateServer 的连接处理逻辑,增加客户端 ID 和信号处理
2025-04-10 07:23:02 +08:00

70 lines
2.2 KiB
JavaScript

class DataProcesser {
constructor(maxSessionCount) {
this.maxSessionCount = maxSessionCount;
this.activeUser = 0;
this.sessions = new Array(maxSessionCount).fill(null);
this.sendThreads = [];
this.recvQueue = [];
this.serverBuf = { buffer: null, size: 0, offset: 0 };
this.userVerify = 1;
this.processRecvSize = 0;
this.waitSendUserSize = 0;
this.waitSendQueueSize = 0;
this.sendUserSize = 0;
this.recvSeverSize = 0;
this.lastProcUsrMsgTime = 0;
this.lastProcSrvMsgTime = 0;
this.lastRecvSrvMsgTime = 0;
this.procSrvThreadSleep = 0;
this.sendQueueSize = 0;
this.ignoreDataPacket = 0;
this.sndThreadSleepTime = 20;
}
initSessions() {
for (let i = 0; i < this.maxSessionCount; i++) {
this.sessions[i] = {
socket: null,
serverIdx: 0,
packetIdx: 0,
packetError: 0,
recvPacketCount: 0,
sendPacketCount: 0,
markToClose: false,
remoteClosed: false,
sendAvaliable: true,
sendTimeout: 0,
closeTick: 0,
connectTick: Date.now(),
clientMsgTick: Date.now(),
serverMsgTick: Date.now(),
verifyIdx: this.userVerify++,
recvBuf: { buffer: null, size: 0, offset: 0 },
sendBuf: { buffer: null, size: 0, offset: 0 }
};
}
}
processUserRecvPacket(session, buffer, bufferSize) {
// 处理用户接收到的数据包
// 这里需要实现具体的数据处理逻辑
}
sendServerMessage(ident, sessionIdx, socket, serverIdx, buffer, bufferSize) {
// 发送消息到服务器
// 这里需要实现具体的消息发送逻辑
}
startup() {
this.initSessions();
// 启动数据处理线程
// 这里需要实现具体的线程启动逻辑
}
stop() {
// 停止数据处理线程
// 这里需要实现具体的线程停止逻辑
}
}
module.exports = DataProcesser;