有两个客户的消息
Uncaught Error: connect ECONNREFUSED 127.0.0.1:10002
function connections() {
var data = {
"clients": [{
"10000": "127.0.0.1",
},
{
"10002": "127.0.0.1",
}]
};
data.clients.forEach(function(client_port, index) {
console.log(client_port + index);
Object.keys(client_port).forEach(function(client_ip) {
console.log(client_ip + " = " + client_port[client_ip]);
var port = client_ip;
var ip = client_port[client_ip];
socket = net.connect(port, ip, function () {
socket.on('data', function (data) {
var dataHex = data.toString('hex');
var dataString = data.toString('utf8');
util.log('get data:' + dataString);
$('response').value += dataString;
arrayparadox = dataString.split(' ');
console.log(arrayparadox[1]);
});
util.log('connected to server ' + client_ip + ':' + client_port);
});
});
});
}
如果我在阵列中仅保留一个客户端,则一切都认为是okai。
答案 0 :(得分:1)
我发现您的代码有两个问题。
您正在做的是对所有套接字使用相同的变量socket
。因此,很有可能在第二次迭代中socket
对象得到更新,而前一个对象被垃圾回收了。您可以做的是创建一个套接字对象数组:
socket[index++] = net.connect();
现在您可以附加诸如socket[index].on(data,function(){})