Node.js实现简单聊天服务器


Posted in Javascript onJune 20, 2014

使用Nodejs是如此简单的实现了一个简单的聊天服务器

实现代码如下:

var net = require('net');
 
var chatServer = net.createServer(),clientList = [];
 
chatServer.on("connection",function(client){
  client.name = client.remoteAddress + ":" + client.remotePort;
  client.write("Hi! "+client.name+" \n");
  clientList.push(client);
 
  client.on("data",function(data){
    //数据发送给客户端
    broadcast(data,client);
    // clientList[i].write(data);
  });
 
  client.on("end",function(){
    clientList.splice(clientList.indexOf(client),1);
  });
 
  client.on("error",function(e){
    console.log(e)
  });
});
chatServer.listen(9000)
 
function broadcast(message,client){
  var cleanup = [];
  for(var i=0;i<clientList.length;i++){
    if(client != clientList[i]){
      if(clientList[i].writable){
        clientList[i].write(client.name = "says:"+message);
      }else{
        cleanup.push[clientList[i]];
        clientList[i].destory();
      }
    }
  }
}

使用过程就是:

启动js

node chat.js

连接方式:telnet

telnet 127.0.0.1 9000
Javascript 相关文章推荐
禁用JavaScript控制台调试的方法
Mar 07 Javascript
js中的json对象详细介绍
Oct 29 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
举例简介AngularJS的内部语言环境
Jun 17 Javascript
深入理解JavaScript单体内置对象
Jun 06 Javascript
JS简单随机数生成方法
Sep 05 Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 Javascript
浅谈Node.js 子进程与应用场景
Jan 24 Javascript
vue页面跳转后返回原页面初始位置方法
Feb 11 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 Javascript
js实现二级联动简单实例
Jan 11 Javascript
JavaScript 对象创建的3种方法
Nov 17 Javascript
SuperSlide2实现图片滚动特效
Jun 20 #Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 #Javascript
js常用数组操作方法简明总结
Jun 20 #Javascript
JS实现闪动的title消息提醒效果
Jun 20 #Javascript
jquery操作checked属性以及disabled属性的多种方法
Jun 20 #Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
Jun 20 #Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
Jun 20 #Javascript
You might like
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
ajax php 实现写入数据库
2009/09/02 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
javascript 全角转换实现代码
2009/07/17 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python set集合类型操作总结
2014/11/07 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
Python3 修改默认环境的方法
2019/02/16 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
通过实例学习Python Excel操作
2020/01/06 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
法律专业推荐信范文
2013/11/29 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
初中班主任评语
2014/04/24 职场文书
校园活动策划方案
2014/06/13 职场文书
任命书怎么写
2015/03/02 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
高一地理教学工作总结
2015/08/12 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
Python绘制散乱的点构成的图的方法
2022/04/21 Python