看了TCP的有关知识,写了个基于NET的聊天室。
代码如下 | 复制代码 |
varnet = require('net'); varcount = 0, users = {}; varserver = net.createServer(function(conn) { console.log('连接到'); conn.write( "rn > welcome to node-chat!" +"rn > "+ count +" other people are connected at this time." +"rn > please write your name and press enter: " ); count++; // 代表当前连接的昵称 varnickname; console.log(conn); conn.on('data',function(data) { // 删除rn // data = data.replace('rn', ' '); // 当前注册的昵称不存在 if(!nickname) { // 用户名存在 if(users[data]) { conn.write('nickname in use'); return; }else{ // 用户名给nickname nickname = data; users[nickname] = conn; for(variinusers) { users[i].write('rn > '+ nickname +' join our room rn > I: '); } } }else{ // 开始聊天 for(variinusers) { if(i != nickname) { users[i].write('rn > '+ nickname +': '+ data); } } } }); conn.on('close',function() { count--; }); conn.setEncoding('utf8'); }); server.listen(3000,function() { console.log('服务器监听端口3000'); }) |
运行截图:
终端:
telnet 这里截取了两个网友