我将如何在没有库的情况下构建 NodeJS Websocket 服务器

Cha*_*lie 7 javascript json comet websocket node.js

我最近在 NodeJS 中构建了一个小型 JSON Web 服务,并且有兴趣将其扩展为通过 WebSockets 接受请求。

到目前为止,我发现的大多数 WebSocket 教程都基于 SocketIO 等 3rd 方模块。

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

Ivo*_*zel 5

好吧,你基本上只需要阅读 RFC 然后实现它:)

在高层次上,WebSockets 只不过是一个扩展的 HTTP 连接。他们UPGRADE在握手的同时收到一个请求。然后浏览器和服务器framed通过现有的 HTTP TCP 连接发送消息。

不过,沿途有一些复杂情况,因为有多个版本的 WebSocket 协议,其中一些不支持二进制传输。

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

它基于协议的第 17 版。除了一些细微的差异,主要是Version 13

还有一些较旧的浏览器仅支持协议的第 6 版(其中帧和初始握手有很大不同)。

对于版本 6 和 13 的准系统实现,您可以查看我的一个库,它几乎只是将 WebSocket 协议包装到标准的 Node.js 抽象中:https :
//github.com/BonsaiDen/lithium/树/主/库