var net = require('net');
var count = 0,users={};
var server = net.createServer(function(conn){
conn.setEncoding('utf8');
conn.write(
'\n> welcome to \033[92mnode-chat\033[39m!'+
'\n> '+count+' other people are connected at this time.'+
'\n> please write your name and press enter '
);
count++;
var nickname;
conn.on('data',function(data){
data = data.replace('\r\n','');
if(!nickname){
if(users[data]){
conn.write('\033[93m> nickname already in use please try again:\033[39m ');
return;
}else{
nickname = data;
users[nickname] = conn;
broadcast('\033[90m> '+ nickname +' joined the room\033[39m\n');
}
}else{
broadcast('\033[96m > '+nickname+' : \033[39m'+data+'\n');
}
});
function broadcast(msg,exceptMyself){
for(var key in users){
if(!exceptMyself||key!= nickname){
users[key].write(msg);
}
}
}
conn.on('close',function(){
count--;
delete users[nickname];
broadcast('\033[90m> '+nickname+' left the room\033[39m\n');
})
});
server.listen(3000,function(){
console.log('\033[96m server listening on *:3000\033[39m');
})
40行代码的node群聊系统
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 总结一下自己在应用审核中遇到过的问题。 1、应用里面带检测更新按钮 Your app includes an up...