我将如何build立一个没有图书馆的NodeJS Websocket服务器

我最近在NodeJS中构build了一个小型的JSON webservice,并且有兴趣将它扩展为通过WebSockets接受请求。

到目前为止,我发现的大部分WebSocket教程都是基于像SocketIO这样的第三方模块。

编写WebSocket服务器需要什么? 假设跨浏览器兼容性在这里不是问题,并且我所有的客户都可以访问一个体面的浏览器。

那么,你基本上只需要读取RFC,然后执行它:)

在高层次上,WebSocket并不仅仅是一个扩展的HTTP连接。 他们在UPGRADE请求和一些握手的同时开始。 之后,浏览器和服务器通过现有的HTTP TCP连接发送framed消息。

虽然有一些并发症,但有几个版本的WebSocket协议,其中一些不支持二进制传输。

RFC可以在这里find: http : //tools.ietf.org/html/rfc6455

它基于协议的第17版 。 除了大部分版本13之外的一些细微的差别。

还有一些较旧的浏览器只支持协议的版本6 (帧和初始握手完全不同)。

对于版本6和版本13的准系统实现,可以查看我的库,它几乎不会将WebSocket协议包装到标准的Node.js抽象中:
https://github.com/BonsaiDen/lithium/tree/master/lib

我会先看看这个项目的源代码: https : //github.com/Worlize/WebSocket-Node