看了TCP的有关知识,写了个基于NET的聊天室。
var net = require('net'); var count = 0, users = {}; var server = 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++; // 代表当前连接的昵称 var nickname; 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 (var i in users) { users[i].write('rn > ' + nickname + ' join our room rn > I: '); } } } else { // 开始聊天 for (var i in users) { 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 这里截取了两个网友
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。