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

时间:2014-05-29 12:41:44

标签: javascript json node.js websocket comet

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

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

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

2 个答案:

答案 0 :(得分:3)

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

在较高级别,WebSockets不仅仅是扩展的HTTP连接。他们通过UPGRADE请求与一些握手一起发起。然后,浏览器和服务器通过现有的HTTP TCP连接发送framed消息。

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

可在此处找到RFC:http://tools.ietf.org/html/rfc6455

它基于version 17 of the protocol。除了一些细微的差异之外,大多数是Version 13

还有一些较旧的浏览器只支持协议的Version 6(框架和初始握手都非常不同)。

对于版本6和13的准系统实现,您可以查看我的库,除了将WebSocket协议包装到标准Node.js抽象中之外,它几乎没什么用处:
https://github.com/BonsaiDen/lithium/tree/master/lib

答案 1 :(得分:0)

我首先来看一下这个项目的来源:https://github.com/Worlize/WebSocket-Node