首页 > 代码库 > 使用Node.js 和ws 模块构建WebSocket服务器

使用Node.js 和ws 模块构建WebSocket服务器

Node.js 中的ws 模块是最新的一个易用的、速度超快的web socket 实现,可以用来快速构建web socket 应用。其中还包含了wscat 命令行工具,可以用来模拟客户端或者服务器端。

在本实例中,我们将研究能够找到的最快的WebSocket 服务器。Node.js 中ws 模块不仅执行超快,而且使用也很简单。它实施方便,是本实例介绍Websocket 的理想选择。

ws 模块很新,符合当前HyBi 协议草案,可以发送和接收数组类型数据(ArrayBuffer、Float32Array 或其他)和二进制数据。虽然很简单,但它可不只是个“玩具”。

如果你想深入了解WebSocket HyBi 协议的细节,下面的网站是不错的资源:

http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17

http://updates.html5rocks.com/2011/08/What-s-different-in-thenew-WebSocket-protocol

ws 还包含了一个不错的命令行客户端wscat,它提供了一种工具,使你可以不使用浏览器发送和接收请求。

如果你不习惯这个命令行工具,本章节也会帮助你理解一些基础。如果你以前回避使用命令行工具,因为并没看到其中的价值,此案例也许会改变你之前的想法。命令行工具非常有用,能够方便你调试和查看发送和接收的网络请求。

安装Node.js

在网络上有很多关于如何安装和运行Node.js 的文档,所以在此就不再重复。可以参考GitHub(https://github.com/joyent/node/wiki/Installation)安装文档。

也可以通过点击nodejs.org(http://nodejs.org/)页面中间的安装按钮开始安装。使用wscat 客户端调用Kaazing 回声服务器

安装并且设置好Node.js 之后,可以通过一个Node Package Manager(NPM)命令安装ws 模块:
 

 
 
  1. $ npm install -g ws 

因为其中包含了socket 库和一个命令行工具,所以我们通过-g 参数在全局安装。这样就可以在不同的应用中使用这个库了(如图9-5 所示)。

技术分享

现在,可以看到NPM 下载并安装ws 模块及所有的依赖。

到此为止,我们就可以用wscat 向Kaazing 远程回声服务器(http://echo.websocket.org)发送请求(如图9-6 所示):
 

 
 
  1. $ wscat -c ws://echo.websocket.org 

这样就完成了,命令行工具可以执行了。可以模拟浏览器发送消息给远程的websocket 服务器。

技术分享

使用Node.js 和ws 模块构建WebSocket服务器