我将如何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