У меня есть следующий код для узла node.js chatserver. Сервер работает, и клиенты могут подключаться к telnet и подключаться. Но когда клиент отправляет сообщение, он автоматически отключает каждого другого клиента, и я не понимаю, что я сделал неправильно.Node.js chatServer, клиенты отключены, когда другой пользователь отправляет данные
var net = require('net');
var chatServer = net.createServer();
var clientList = [];
chatServer.on('connection', function(client) {
client.name = client.remoteAddress + ':' + client.remotePort;
client.write("Hi " + client.name + "!\n");
clientList.push(client);
client.on('data', function(data) {
broadcast(data, client);
});
client.on('end', function() {
clientList.splice(clientList.indexOf(client), 1);
});
client.on('error', function(e) {
console.log(e);
});
});
function broadcast(message, client) {
var cleanup = [];
for(var i = 0; i < clientList.length; i++) {
if(client !== clientList[i]) {
if(clientList[i].writeable) {
clientList[i].write(client.name + " says " + message);
} else {
cleanup.push(clientList[i]);
clientList[i].destroy();
}
}
}
for(i = 0; i < cleanup.length; i++) {
clientList.splice(clientList.indexOf(cleanup[i]), 1);
}
}
chatServer.listen(9000);
Check [чистый. Свойство Socket.writable не является частью официального node.js API] (http://stackoverflow.com/q/9529795) – Bergi