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
相关推荐
-
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
-
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
-
使用Meteor配合Node.js编写实时聊天应用的范例
我经常见到被拿来与Derby.js做比较的框架是Meteor.js. 与Derby相似的是,它也能在多个客户端下实时更新views, 尽管做法上可能跟Derby有点不同. Derby可以较容易的使用多种数据库, 而Meteor则只亲近于MongoDB. 事实上, 通过如Mongoose客户端接入数据库的API与你在服务端所期望的已经非常接近了. 虽然现在meteor是个有一些缺点和争议的框架, 但Meteor看起来是非常有趣的选择用来建立有实时需求的应用. 个人还是喜欢Derby基于传统回调的编
-
AngularJS+Node.js实现在线聊天室
不得不说,上手AngularJS比我想象得难多了,把官网提供的PhoneCat例子看完,又跑到慕课网把大漠穷秋的AngularJS实战系列看了一遍,对于基本的使用依然有很多说不清道不明的疑惑,于是决定通过做一个在线聊天室帮助理解.DEMO可以戳→chat room,代码可以戳→ChatRoom-AngularJS. 清晰图可以戳 http://files.jb51.net/file_images/article/201508/201508281040051.gif 功能 着手开发之前,首先明确一
-
基于Node.js + WebSocket打造即时聊天程序嗨聊
前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前后端之间代码敲得飞起,从此由前端晋升为'前后端'. 本文将使用Node.js加web socket协议打造一个网页即时聊天程序,取名为HiChat,中文翻过来就是'嗨聊',听中文名有点像是专为寂寞单身男女打造的~ 其中将会使用到express和socket.io两个包模块,下面会有介绍. 源码 源码
-
使用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,
-
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
-
Nodejs之TCP服务端与客户端聊天程序详解
TCP是用来计算机之间进行通信的,通过编写客户端和服务端聊天的代码,对于服务器与客户端的工作步骤有了深刻的了解,在这里根据了不起的Node.js一书来总结一下. TCP聊天程序需要用到Nodejs中的net模块,net模块是对TCP的封装,用于创建TCP服务端与客户端的. 服务器端 count:连接的客户端个数: users:用于存储客户端用户昵称的对象,对象值都为该客户端的Socket,Socket是一个接口,用于服务端与客户端通信. net.createServer:是用来创建TCP服务器,
-
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
-
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
随机推荐
- dubbo的配置文件详解(推荐)
- jsp页面iframe高度自适应的js代码
- MyBatis Oracle 自增序列的实现方法
- 招聘网站基于jQuery实现自动刷新简历
- vue按需引入element Transfer 穿梭框
- 让图片跳跃起来 javascript图片轮播特效
- java如何利用FastJSON、Gson、Jackson三种Json格式工具自定义时间序列化
- Java中break、continue、return语句的使用区别对比
- iOS模仿电子书首页实现书架布局样式
- IOS中快速集成短信SDK验证开发(SMSSDK),IOS开发中如何设置手机短信验证码
- 微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
- ASP.NET 小技巧(2个)
- cookie的优化与购物车实例
- 详解Android应用中DialogFragment的基本用法
- asp.net Page.Controls对象(找到所有服务器控件)
- Swift中的协议(protocol)学习教程
- 2013年什么时候数九 三九天(数九天)从哪天开始
- Android、iOS和Windows Phone中的推送技术详解
- 利用php获取服务器时间的实现代码
- 在Spring Boot中如何使用log4j记录日志