var net = require('net');
var count = 0,
users = {};
var server = net.createServer(function(conn) {
var nickname;
console.log('new Connection');
conn.write(
'> welcome to node-chat \n >'
+ count + ' other people are connected aht this time \n >'
+ 'please write you name and press enter\n'
);
++count;
conn.on('data', function(data) {
data = data.replace('\r\n', '');
if (!nickname) {
if(users[data]) {
conn.write('nickname already in use. try again\n');
return;
} else {
nickname = data;
users[nickname] = conn;
for (var i in users) {
users[i].write(nickname + ' join the room\n');
}
}
} else {
for (var i in users) {
if (i != nickname) {
users[i].write(nickname + ': ' + data + '\n');
}
}
}
console.log(data);
});
conn.setEncoding('utf-8');
conn.on('close', function() {
--count;
delete users[nickname];
});
});
server.listen(3000, function() {
console.log('server listening on 3000');
});
基于TCP的聊天程序(了不起的nodejs chapter6)
最新推荐文章于 2021-03-02 09:00:14 发布