Node.js NodeJS Net.createServer

Node.js NodeJS Net.createServer,node.js,Node.js,嘿,嗯,我有一个问题,我想这可能与net.createserver有关 问题是,每当第一个客户机在另一个客户机加入之后加入时,第一个客户机可以控制第二个客户机,然后第一个客户机断开连接,因为套接字(结束)事件被触发。它是否与套接字或其他东西有关,或者服务器无法处理两个连接?请帮忙 守则: handleGame: function() { console.log(log.success('The source is starting!')); var server = ne

嘿,嗯,我有一个问题,我想这可能与net.createserver有关

问题是,每当第一个客户机在另一个客户机加入之后加入时,第一个客户机可以控制第二个客户机,然后第一个客户机断开连接,因为套接字(结束)事件被触发。它是否与套接字或其他东西有关,或者服务器无法处理两个连接?请帮忙

守则:

    handleGame: function() {
    console.log(log.success('The source is starting!'));
    var server = net.createServer(function(socket) {
        console.log('A client has connected' + "\r\n");
        socket.setEncoding('utf8')
        global.clientObjz = new client(socket);
        game.addClient(clientObjz);
        socket.on('data', function(data) {
            data = data.toString().split('\0')[0];
            console.log('Incoming data: ' + data + "\r\n")
            if (data == "<msg t='sys'><body action='verChk' r='0'><ver v='153' /></body></msg>" | data == "<msg t='sys'><body action='rndK' r='-1'></body></msg>" | data.startsWith("<msg t='sys'><body action='login' r='0'>")) {
                parseXml(data, function(err, result) {
                    var type = result.msg['$'].t,
                        action = result.msg.body[0]['$'].action;

                    var method = Game.xmlHandlers[type][action];

                    if (typeof Game[method] == 'function') {
                        Game[method](data, client);
                    }
                });
            }
            var dataType = data.charAt(0);
            if (dataType == '%') {
                game.handleraw(data, clientObjz);
            }
        });
        socket.on('end', function() {
            game.removeClient(socket);
            console.log('A client has disconnected');
        });
        socket.on('error', function(err) {

         console.log(err);
        });
    });

    server.listen(Game1, "localhost", function() {
        console.log('Server is listening on port 6113');
    });

}

//this code is another file as i am calling it by game.clients.push
 addClient: function(client) {
    if (client) {
        self.clients.push(client);
    }
}
handleGame:function(){
console.log(log.success('源正在启动!'));
var server=net.createServer(函数(套接字){
console.log('客户端已连接'+“\r\n”);
socket.setEncoding('utf8')
global.clientObjz=新客户端(套接字);
game.addClient(clientObjz);
socket.on('data',函数(data){
data=data.toString().split('\0')[0];
console.log('传入数据:'+data+“\r\n”)
if(data==“”| data==“”| data.startsWith(“”)){
parseXml(数据、函数(错误、结果){
var type=result.msg['$'].t,
action=result.msg.body[0]['$'].action;
var method=Game.xmlHandlers[type][action];
如果(游戏类型[方法]=‘功能’){
游戏[方法](数据,客户端);
}
});
}
var数据类型=data.charAt(0);
如果(数据类型=“%”){
handleraw(数据,clientObjz);
}
});
socket.on('end',function(){
游戏。removeClient(套接字);
log(“客户端已断开连接”);
});
socket.on('error',函数(err){
控制台日志(err);
});
});
监听(游戏1,“本地主机”,函数(){
log('服务器正在侦听端口6113');
});
}
//这个代码是另一个文件,我用game.clients.push调用它
addClient:函数(客户端){
如果(客户){
self.clients.push(客户机);
}
}
是的,这是一个clubpenguin模拟器


完整代码:

如果您仅使用NodeJS net.createServer执行此操作,则需要实现套接字通道。如果您想让它变得简单,可以使用express.js查找一些东西,比如:

添加代码,这样人们就可以知道发生了什么。