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

标签 javascript sockets html node.js websocket

注意:这与同时使用 node.js 和 HTML5 套接字无关。我也没有兴趣讨论我正在描述的设置的优点。

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

我的问题是,有没有人成功地将 node.js 脚本移植到 WebSockets,即将 node.js 排除在等式之外,以便您的网络浏览器直接连接到数据库?我想它看起来像:

  1. 删除所有与 HTTP 相关的内容
  2. 移植所有 node.js 特定函数的使用以使用 WebSockets API

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

最佳答案

你的问题有点难以解析,但我会尝试一下。

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

如果您有兴趣将 WebSockets 支持添加到特定的给定服务器(即数据库服务器),那么您可能会发现 this fork of libvncserver .它支持使用 WebSockets(即 noVNC)的客户端,因此不需要代理。

基本的 wsproxy 代理功能实现起来非常简单。最棘手的部分是当前使用的 WebSockets 草案 (v76) 没有指定二进制传输有效负载(仅 UTF-8),因此 wsproxy base64 编码/解码所有进出 WebSockets 客户端的流量。在 libvncserver 中实现 WebSockets 连接有点棘手,因为 libvncserver 有一些关于缓冲/框架的硬编码想法需要解决。

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

关于javascript - 将 node.js 服务器端代码移植到 HTML5 WebSockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4188825/

相关文章:

javascript - 如何在javascript中获取地平线和设备之间的 Angular ?

javascript - 为什么工作表 ID 在重新打开文档(Excel javascript API)后发生变化?

silverlight - Silverlight中的Bittorrent客户端

android - 在 Android 的蓝牙中,BluetoothSocket.connect 是否调用 SDP 来获取新 channel

javascript - html中的可拖动元素

javascript - 无法安装js-bson

javascript - 如何在 Rails 6 中使用 Webpacker 加载 d3.js?

c - mac osx 上的 select() 套接字系统调用需要很长时间才能读取

html - 1 个内容栏和 2 个侧边栏的 CSS 代码

python - 从 HTML 按钮运行 Python 脚本