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...