Node.js聊天服务器,当另一个用户发送数据时,客户端断开连接
Node.js chatServer, clients disconnected when another user sends data
我有以下node.js聊天服务器的代码。服务器运行,客户端可以进行telnet和连接。但当一个客户端发送消息时,它会自动断开其他客户端的连接,我不明白自己做错了什么。
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);
您在这里输入了错误
if(clientList[i].writeable)
该属性的正确名称是可写
我认为writable
条件对于数组中的每个项都失败了,因此根据您的代码,所有客户端都将被删除。不确定您要用writable
检查做什么。
相关文章:
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何将权限/授权数据传递到客户端Javascript
- 同源策略目的|用户数据与基本页面数据|客户端页面抓取
- 如何在从客户端接收数据时从本机方法触发javascript函数?
- 将数据发布到nodejs服务器到客户端
- websocket客户端在发送大数据时断开连接
- ASP.Net模型到Javascript-将数据从服务器传递到客户端
- AJAX 将数据从客户端(JS)发送到服务器(PHP)
- 是否可以使用googleanalystics.js在客户端获取推荐数据
- 有没有办法清除客户端上的XHR缓存数据
- 最小化在javascript中客户端/服务器之间发送的数据
- 使用 CSS3 数据属性进行客户端文本搜索
- 在 Angularjs 中浏览器页面的客户端加载中存储参考数据
- 客户端将EDN转换为JSON(HTML5应用程序使用的Datomic数据)
- 如何使用数据表进行客户端和服务器端的混合分页,以便对前X行进行客户端分页
- 正在服务器或客户端上生成数据
- 客户端数据存储
- 动态创建页面 og 元数据 - 客户端
- 安全的数据客户端缓存
- 从JSON数据(客户端或服务器端)获取JSONPath