Rumah > Soal Jawab > teks badan
大家帮忙看一下这代码有没有错
因为当我运行dos系统的客户端时出现了服务器没有信息接收
/******************聊天室服务器********************/
var events = require('events');//引用事件模块
var net = require('net');//创建socket服务器、客户端的模块
var channel = new events.EventEmitter();//创建事件发射器
channel.clients = {};
channel.subscriptions = {};
channel.on('join',function(id,client){
//定义channel发射器,添加join监听器,保存用户的client对象,以便程序可以将数据发送给用户
this.clients[id] = client;
this.subscriptions[id] = function(senderId,message){
if(id!=senderId){
this.clients[id].write(message);
}
}
this.on('broadcast',this.subscriptions[id]);//添加一个专门针对当前用户的broadcast事件监听器
});
channel.on('leave',function(id){
channel.removeListener('broadcast',this.subscriptions[id]);
channel.emit('broadcast',id,id+'has left the chat.\n');
});
var server = net.createServer(function(client){//创建服务器
var id = client.remoteAddress + ':' +client.remotePort;//remoteAddress远程地址,remotePote远程端口
channel.emit('join',id,client);//当有用户连接到服务器时发送一个join事件,指明id和client 对象
client.on('data',function(data){//监听客户端的信息
data = data.toString();
channel.emit('broadcast',id ,data);//当有用户发送数据,向频道内所有人发送一个频道boradcast事件
});
client.on('close',function(){//当监听到客户端的close事件时,发送leave事件个客户端
channel.emit('leave',id);
});
});
server.listen(8000);
这是服务器
这是客户端