Node.js制作简单聊天室

 更新时间:2017年01月12日 11:46:51   作者:光明大神棍  
这篇文章主要为大家详细介绍了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 这里截取了两个网友

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解node.js平台下Express的session与cookie模块包的配置

    详解node.js平台下Express的session与cookie模块包的配置

    本篇文章主要介绍了详解node.js平台下Express的session与cookie模块包的配置,具有一定的参考价值,有兴趣的可以了解一下。
    2017-04-04
  • MQTT Client实现消息推送功能的方法详解

    MQTT Client实现消息推送功能的方法详解

    这篇文章主要介绍了MQTT Client实现消息推送功能的方法,结合实例形式详细分析了MQTT Client实现消息推送的基本原理、实现方法与相关操作注意事项,需要的朋友可以参考下
    2023-05-05
  • 基于NodeJS的前后端分离的思考与实践(二)模版探索

    基于NodeJS的前后端分离的思考与实践(二)模版探索

    在传统的开发模式中,浏览器端与服务器端是由不同的前后端两个团队开发,但是模版却又在这两者中间的模糊地带。因此模版上面总不可避免的越来越多复杂逻辑,最终难以维护。
    2014-09-09
  • 修改npm全局安装模式的路径方法

    修改npm全局安装模式的路径方法

    今天小编就为大家分享一篇修改npm全局安装模式的路径方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 深入理解Node内建模块和对象

    深入理解Node内建模块和对象

    在node核心中有些内建模块,使用这些模块可以操作系统,文件和网络,这篇文章主要介绍了深入理解Node内建模块和对象,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Node.js本地文件操作之文件拷贝与目录遍历的方法

    Node.js本地文件操作之文件拷贝与目录遍历的方法

    这篇文章主要介绍了Node.js本地文件操作之文件拷贝与目录遍历的方法,拷贝用到了Node的文件API,遍历则举了一个异步API实现的形式(Node的一大特点),需要的朋友可以参考下
    2016-02-02
  • node.js中module.exports与exports用法上的区别

    node.js中module.exports与exports用法上的区别

    Node.js 引入了模块(Module)概念,一个模块可以通过module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过require() 函数引入并使用。那么node.js中module.exports与exports有什么区别呢?下面小编给大家解答下
    2016-09-09
  • koa框架的原理、功能,与基本使用方法概述

    koa框架的原理、功能,与基本使用方法概述

    这篇文章主要介绍了koa框架的原理、功能,与基本使用方法,结合实例形式分析了koa框架的基本功能、原理、使用方法与相关注意事项,需要的朋友可以参考下
    2023-04-04
  • express+multer上传图片打开乱码问题及解决

    express+multer上传图片打开乱码问题及解决

    这篇文章主要介绍了express+multer上传图片打开乱码问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Egret引擎开发指南之发布项目

    Egret引擎开发指南之发布项目

    当我们制作完成一个项目后,我们需要把项目发布为正式版本,并放到网上提供给玩家。那么在egret中简单的使用build命令并非打包最终的正式版文件。你还需要进行最终的发布操作。
    2014-09-09

最新评论