将node.js服务器端代码移植到HTML5 WebSockets

注意:这不是关于使用node.js和HTML5套接字。 我也没有兴趣讨论我所描述的设置的优点。

node.js在服务器上运行,并且由于它支持通过套接字作为客户端进行连接,所以它可以作为HTML5 / JS客户端和使用TCP / IP的服务器(如数据库服务器)之间的中间层。因此, node.js和WebSockets都包含打开到服务器的套接字连接的方法。

我的问题是,是否有人成功地将一个node.js脚本移植到WebSockets,即将node.js从等式中删除,以便您的Web浏览器直接连接到数据库? 我想它会看起来像:

  1. 切断与HTTP的一切
  2. 移植所有node.js专用函数的使用来使用WebSockets API

如果这样做了,是不是很麻烦,或者是node.js和WebSockets API比较相似?

你的问题有点难以parsing,但我会采取一个刺。

如果您有兴趣从WebSockets客户端(浏览器)连接到任意的TCP套接字服务器,那么您可能会对wsproxy感兴趣,它是一个通用的Web套接字到TCP套接字代理。 wsproxy包含在noVNC (HTML5 VNC客户端)中,并且在C,python和Node(node.js)中有三个参考实现。

如果您有兴趣将WebSockets支持添加到特定的给定服务器(即数据库服务器),那么您可能会发现这个libvncserver分支 。 它支持说WebSockets(即noVNC)的客户,所以不需要代理。

基本的wsproxy代理function是相当简单的实现。 最棘手的部分是当前正在使用的WebSockets草案(v76)没有指定二进制传输负载(仅限于UTF-8),所以wsproxy base64编码/解码所有来自WebSockets客户端的stream量。 libvncserver中的WebSocket连接的实现稍微有点棘手,因为libvncserver有一些关于缓冲/成帧的相当硬编码的想法需要解决。

免责声明:我负责noVNC,wsproxy和WebSockets补丁libvncserver。