用Node.js编写多人实时在线聊天室

在Mike和Marc合著的《Node.js实战》书中提供了一个聊天室demo,但书中所用Node版本太旧,代码已不能运行。因此本示例代码基于Node.js当前最新版本6.11.0修改而成,代码地址:https://github.com/foupwang/chatroomsnode

代码运行方法:
一、下载代码到本地,进入根目录,先安装第三方模块,命令:npm install
二、启动服务器,命令:node server.js
三、打开浏览器,输入地址:http://127.0.0.1:3000/
四、开始文字聊天或输入命令建立新聊天室;git

 

聊天室实现了如下功能:
一、给同一房间全部用户发送消息;
二、显示可用房间列表;
三、输入命令加入已有房间或建立新房间;
四、新用户进入房间通知;
五、输入命令修改用户昵称;github

该Node.js聊天室代码实现虽简单,却展现了构建实时Web程序所需的重要组件和基本技术。不但能看到Node如何同时处理传统的HTTP数据(好比静态文件)和实时数据(聊天消息),还能看到Node程序如何组织、依赖项如何管理,以及一个端口同时处理HTTP和WebSocket。npm

背景知识
一、什么是WebSocket?
WebSocket是基于TCP的一种新的网络协议,它实现了浏览器与服务器之间的双向通讯(容许服务器主动发送信息给客户端)。在WebSocket协议出现以前,双向通讯是经过多个HTTP连接轮询实现的,致使了效率低下等一系列问题。一个更简单的解决方案是使用单个TCP链接双向通讯,这就是WebSocket协议所提供的功能。
二、什么是Socket.IO?
大多数状况下,只有兼容HTML5的现代浏览器才支持WebSocket,也就是说,某些浏览器可能不支持WebSocket。而Socket.IO作了基于WebSocket及其它传输方式的封装,它提供了一个抽象层,若是浏览器没有实现WebSocket,Socket.IO会自动启用一个备选方案,而对外提供的API仍是同样的。浏览器

相关文章
相关标签/搜索