Node.js实现简单聊天服务器
使用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
相关推荐
-
使用Meteor配合Node.js编写实时聊天应用的范例
我经常见到被拿来与Derby.js做比较的框架是Meteor.js. 与Derby相似的是,它也能在多个客户端下实时更新views, 尽管做法上可能跟Derby有点不同. Derby可以较容易的使用多种数据库, 而Meteor则只亲近于MongoDB. 事实上, 通过如Mongoose客户端接入数据库的API与你在服务端所期望的已经非常接近了. 虽然现在meteor是个有一些缺点和争议的框架, 但Meteor看起来是非常有趣的选择用来建立有实时需求的应用. 个人还是喜欢Derby基于传统回调的编
-
Nodejs之TCP服务端与客户端聊天程序详解
TCP是用来计算机之间进行通信的,通过编写客户端和服务端聊天的代码,对于服务器与客户端的工作步骤有了深刻的了解,在这里根据了不起的Node.js一书来总结一下. TCP聊天程序需要用到Nodejs中的net模块,net模块是对TCP的封装,用于创建TCP服务端与客户端的. 服务器端 count:连接的客户端个数: users:用于存储客户端用户昵称的对象,对象值都为该客户端的Socket,Socket是一个接口,用于服务端与客户端通信. net.createServer:是用来创建TCP服务器,
-
Node.js中使用socket创建私聊和公聊聊天室
先给大家展示效果图: 在上篇文章给大家介绍使用Angular和Nodejs.socket.io搭建聊天室及多人聊天室,本文继续介绍Node.js中使用socket创建私聊和公聊聊天室,具体详情请看下文吧. nodejs的应用中,关于socket应该是比较出彩的了,socket.io在github上有几万人的star,它的成功应该是不输于express的,为了方便了解整个socket.io的使用. 例子请点击http://chat.lovewebgames.com/ 源码下载https://git
-
WebSocket+node.js创建即时通信的Web聊天服务器
本文实例node.js创建即时通信的Web聊天服务器,供大家参考,具体内容如下 1.使用nodejs-websocket nodejs-websocket是基于node.js编写的一个后端实现websocket协议的库, 连接:https://github.com/sitegui/nodejs-websocket. (1)安装 在项目目录下通过npm安装:npm install nodejs-websocket (2)创建服务器 //引入nodejs-websocket var ws
-
nodejs实现的一个简单聊天室功能分享
今天我来实现一个简单的聊天室,后台用nodejs, 客户端与服务端通信用socket.io,这是一个比较成熟的websocket框架. 初始工作 1.安装express, 用这个来托管socket.io,以及静态页面,命令npm install express --save,--save可以使包添加到package.json文件里. 2.安装socket.io,命令npm install socket.io --save. 编写服务端代码 首先我们通过express来托管网站,并附加到socke
-
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
一,利用Node搭建静态服务器 这个是这个项目的底层支撑部分.用来支持静态资源文件像html, css, gif, jpg, png, javascript, json, plain text等等静态资源的访问.这里面是有一个mime类型的文件映射. mime.js /** * mime类型的 map * @ author Cheng Liufeng * @ date 2014/8/30 * 当请求静态服务器文件的类型 html, css, gif, jpg, png, javascript,
-
基于Node.js + WebSocket打造即时聊天程序嗨聊
前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前后端之间代码敲得飞起,从此由前端晋升为'前后端'. 本文将使用Node.js加web socket协议打造一个网页即时聊天程序,取名为HiChat,中文翻过来就是'嗨聊',听中文名有点像是专为寂寞单身男女打造的~ 其中将会使用到express和socket.io两个包模块,下面会有介绍. 源码 源码
-
Node.js利用Net模块实现多人命令行聊天室的方法
这篇文章介绍的是Node.js利用Net模块实现命令行式的多人聊天室,下面话不多说,来看看详细的介绍吧. 1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类: Server和Socket类.工厂方法. Server类如下图所示: net.Server类可以用来创建一个TCP或本地服务器,继承了EventEmitter. Socket类如下: net.Socket类一般用创建一个socket客户端或者是ne
-
AngularJS+Node.js实现在线聊天室
不得不说,上手AngularJS比我想象得难多了,把官网提供的PhoneCat例子看完,又跑到慕课网把大漠穷秋的AngularJS实战系列看了一遍,对于基本的使用依然有很多说不清道不明的疑惑,于是决定通过做一个在线聊天室帮助理解.DEMO可以戳→chat room,代码可以戳→ChatRoom-AngularJS. 清晰图可以戳 http://files.jb51.net/file_images/article/201508/201508281040051.gif 功能 着手开发之前,首先明确一
-
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 peopl
随机推荐
- jquery 的 $("#id").html() 无内容的解决方法
- Java Web开发入门书籍实例解析(总结一)
- 在Java的Struts中判断是否调用AJAX及用拦截器对其优化
- CodeIgniter连贯操作的底层原理分析
- ThinkPHP跳转页success及error模板实例教程
- Jsoup 抓取页面的数据实例详解
- 解析使用ThinkPHP应该掌握的调试手段
- javascript 操作cookies及正确使用cookies的属性
- JavaScript高阶函数_动力节点Java学院整理
- js获取上传文件的绝对路径实现方法
- Oracle 中生成流水号的方法
- js语法学习之判断一个对象是否为数组
- js获取当月最后一天实例代码
- win2003 R2升级提示另一个应用程序要求重新启动的解决方法
- 全排列算法的非递归实现与递归实现的方法(C++)
- vue-cli常用设置总结
- RateLimit-使用guava来做接口限流代码示例
- python中单下划线(_)和双下划线(__)的特殊用法
- Spring注解@Resource和@Autowired区别对比详解
- Docker Swarm从部署到基本操作
