nodejs实现的一个简单聊天室功能分享

前端之家收集整理的这篇文章主要介绍了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来托管网站,并附加到socket.io实例里,因为socket.io初次连接需要http协议

代码如下:

var app = express();

app.use(express.static(__dirname));

var server = app.listen(8888);

var ws = io.listen(server);

添加服务器连接事件,当客户端连接成功之后,发公告告诉所有在线用户,并且,当用户发送消息时,发广播通知其它用户.
代码如下:
通知其它用户 client.on('disconnect',function(){ if(client.nickname){ client.broadcast.emit('send.message',client.nickname + '离开聊天室!'); } })

})

由于客户端是通过昵称来标识的,所以服务端需要一个检测昵称重复的函数

代码如下:

编写客服端代码

由于服务端采用第三方websokcet框架,所以前端页面需要单独引用socket.io客户端代码,源文件可以从socket.io模块里找,windows下路径为node_modules\socket.io\node_modules\socket.io-client\dist,这里有开发版和压缩版的,默认引用开发版就行.

前端主要处理输入昵称检查,消息处理,完整代码如下:

代码如下:
socket.io 聊天室例子 <Meta charset="utf-8">

这里提供代码压缩文件

总结

nodejs是一个好东西,尤其是在处理消息通讯,网络编程方面,天生的异步IO.

猜你在找的Node.js相关文章