websocket 协议和 http 协议类似,http 协议有一个缺陷,只能由客户方端发起请求,服务端根据请求 url 和传过去的参数返回对应结果
websocket 是双向通信的,只要 websocket 连接建立起来,可以由客户端给服务端发送数据,也可以由服务端主动给客户端发送数据
websocket 适用场景:聊天室
websocket 相关简介,可以看 阮老师的文章
nodejs 可以通过 nodejs-websocket 来实现创建一个 websocket 的服务
nodejs-websocket 用法
文档地址: https://www.npmjs.com/package/nodejs-websocket
node 创建的 websocket 服务,主要包含三个概念
可以通过 server.on('event', (res) =>{console.log(res)}) 调用
这次使用 websocket 实现一个基本的聊天室功能,个人感觉还比较简单,只是中间会出现一些由于链接异常断开,导致后端服务抛出异常挂掉的情况
记住前端关闭页面或者刷新页面时,先把连接关掉,每次进入页面时创建连接,然后后端将由于异常关闭导致的出错 try/catch 一下,避免抛出异常,阻塞进程
websocket 对于实现聊天室这样的功能,真的很方便,其实还能扩展到多人合作或者网络游戏等功能
一、 安装node.js
1、 下载node.js源码包
地址 http://nodejs.org/download/ 这里有最新版本的node.js对应各个操作系统的二进制文件或者源码包,请自行选择,此处我们选源码编译安装,所以下载源码包。
现在最新版已经是v0.10.3了。
取得tar包的url,敲命令图表 1复制链接地址
wget http://nodejs.org/dist/v0.10.3/node-v0.10.3.tar.gz
在linux中用wget下载
2、 编译安装
•解压
tar –zxvf node-v0.10.3.tar.gz
•编译安装./configure --prefix=/usr/local/node #prefix参数指定要安装到的路径,如果这个命令执行失败,最常见的原因是,当前python版本太低。此处最初也碰到了这个问题,把python2.4升级到python2.7后解决这个问题。
make #这个命令要花些时间,此时可以去沏杯茶喝make install
此时运行命令 node –v ,若显示如下:
v0.10.3
则表示安装node.js成功。
二、 安装基于node.js的web聊天室demo
下载源码包
在CSDN上,http://download.csdn.net/download/wanglei_134/4593099感谢 @wanglei_134同学
下载完成后,解压
unzip chat.zip
注意看你的系统是否安装有unzip这个命令。
进入目录
cd chat/chat/
运行命令
node chat.js
这时你就能看到如下界面了在浏览器地址栏中,如果你是安装在本地机器上,则输入h ttp://127.0.0.1:3000如果是在内部网服务器上,则输入相应服务器IP,h ttp://hostIp:3000,就能看到聊天室登陆界面啦!