我最近在NodeJS中构建了一个小型JSON Web服务,我有兴趣将其扩展为通过WebSockets接受请求。
到目前为止,我发现的大多数WebSocket教程都基于第三方模块,如SocketIO。
编写WebSocket服务器需要什么? 假设跨浏览器兼容性在这里是一个非问题,并且我的所有客户都可以访问一个体面的浏览器。
答案 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