|
初学node.js和html5的相关技术(node方面大部分都是在cnodejs.org上面看技术文章学到的),想着学以致用,于是基于node.js和websocket来做了一个多人聊天室:
一、功能简介
1、用户随意输入一个昵称即可登录
2、登录成功后
1) 对正在登录用户来说,罗列所有在线用户列表,罗列最近的历史聊天记录
2) 对已登录的用户来说,通知有新用户进入房间,更新在线用户列表
3、退出登录
1) 目前未支持直接退出,只能通过关闭网页来退出…
2) 当有用户退出,其他所有在线用户会收到信息,通知又用户退出房间,同时更新在线用户列表
4、聊天
1) 聊天就是广播,把信息广播给所有连接在线的用户
5、一些出错处理
1) 暂时简单处理了系统逻辑错误、网络出错等特殊情况的出错提示
二、技术简介
1、node方面主要是基于node-websocket-server这个框架;服务器和客户端用JSON数据来通讯;
2、其他的就不多说了,直接贴上这个小demo的源码地址: https://github.com/auzll/nodechat 。有兴趣的可以看看,欢迎各位网友批评指正。
三、参考文章
1、websocket与node.js的完美结合( http://cnodejs.org/blog/?p=273 ) 。从这里了解到node-websocket-server 这个框架的,一个node.js和websocket通讯的框架,本程序中有使用到。
2、nodejs: 真正的一份代码,到处运行( http://cnodejs.org/blog/?p=702 ) 。从这里了解到如何在svr和client中同时复用部分代码,当然,本程序也模仿了这里面的技术来做,例如我源码里面svr/chatLib.js其实是同时被svr和client公用的。
四、附带几张效果图
1、 进入源码目录,svr/Main.js,执行node Main.js来启动

2、 输入昵称

3、 聊天主界面

4、 聊天主界面之“后登陆用户查看历史消息”
|