这里有新鲜出炉的 7 天学会 Node.js,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
这篇文章主要为大家详细介绍了 Node.js 制作简单聊天室的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
看了 TCP 的有关知识,写了个基于 NET 的聊天室。
- var net = require('net');
- var count = 0,
- users = {};
- var server = net.createServer(function (conn) {
- console.log('连接到');
- conn.write(
- "\r\n > welcome to node-chat!"
- + "\r\n > " + count + " other people are connected at this time."
- + "\r\n > please write your name and press enter: "
- );
- count++;
- // 代表当前连接的昵称
- var nickname;
- console.log(conn);
- conn.on('data', function (data) {
- // 删除\r\n
- // data = data.replace('\r\n', ' ');
- // 当前注册的昵称不存在
- 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('\r\n > ' + nickname + ' join our room \r\n > I: ');
- }
- }
- } else {
- // 开始聊天
- for (var i in users) {
- if (i != nickname) {
- users[i].write('\r\n > ' + nickname + ': ' + data);
- }
- }
- }
- });
- conn.on('close', function () {
- count--;
- });
- conn.setEncoding('utf8');
- });
- server.listen(3000, function () {
- console.log('服务器监听端口3000');
- })
运行截图:
终端:
telnet 这里截取了两个网友
来源: http://www.phperz.com/article/17/0706/328594.html