【问题标题】:How to tunnel websockets over TCP in node?如何在节点中通过 TCP 隧道连接 websocket?
【发布时间】:2015-12-22 12:58:50
【问题描述】:

我正在尝试通过 TCP 建立 websockets 隧道。我知道如何通过 HTTPS 隧道 - “连接 URL:端口”是我开始的地方。从那里,打开一个到目标的套接字,然后在客户端和目标之间进行管道连接。我从哪里开始使用 websockets?是否有类似于“连接 url:端口”的东西,我可以在我的 http 服务器中捕获,然后进行一些升级处理?

【问题讨论】:

    标签: proxy websocket http-tunneling proxytunnel


    【解决方案1】:

    您确定要通过 TCP 建立 WebSocket 隧道吗? WebSocket 通过 TCP 运行。

    我认为您的意思是您希望使用 WebSocket 来传输 TCP 流量,即采用现有的、传统的基于 Socket 的应用程序并使其在 Web 上运行。如果这就是您的意思,您实际上是将 TCP 数据放在 WebSocket 帧中,然后在接收端读取 WebSocket 帧并提取数据。当然,这说起来容易做起来难。您必须确保在发送方正确创建 WebSocket 帧(同时处理 TCP 数据流,这也可能很棘手),加密数据(它通过网络,对吗?)并在接收方读取WebSocket 框架,从框架的右侧部分提取数据。此外,您还需要检查所有数据是否在一个 WebSocket 框架或多个框架中。

    正如我所说,这并不简单。

    有几个 WebSocket 库可能(或可能)不为您处理所有这些(许多不处理多个 WebSocket 框架的情况)。

    【讨论】:

    • 我的确切要求 - 代理 websocket 连接。代理是我写的。我代理了 https 和 http,这很容易实现,这要归功于 Node 的 http 和 net 模块。但我不确定如何代理 wss。我可以使用只为 wss 而不是 ws 工作的代理。无法投票...没有足够的票数。
    • 这个 Node WebSocket 模块有帮助吗? npmjs.com/package/nodejs-websocket
    猜你喜欢
    • 2021-12-27
    • 2021-02-15
    • 2018-10-06
    • 2016-02-04
    • 2021-09-30
    • 2021-10-04
    • 2022-01-03
    • 2016-07-02
    • 2021-11-13
    相关资源
    最近更新 更多