【问题标题】:Instant Transfer file between 2 browser clients via TCP通过 TCP 在 2 个浏览器客户端之间即时传输文件
【发布时间】:2012-06-05 16:23:46
【问题描述】:

是否有可能创建一个使这种情况成为可能的网站:

用户A登录网站,上传一个文件,与用户B建立直接TCP连接,同时下载文件。无需通过服务器传递文件。

如何让用户B通过浏览器收听?

这会违反“同源政策”吗?

重点是使用浏览器,不要使用其他软件如P2P客户端。

这个疯狂的想法可能吗?

【问题讨论】:

  • 用户A不需要知道用户B的IP地址吗?如果用户 B 在防火墙后面怎么办?
  • Webserver 可以轻松识别这两个 IP。防火墙可能会有好转。

标签: ajax browser tcp p2p upnp


【解决方案1】:

我怀疑 webRTC 是否完全满足您的需求。

你有两个问题:

  • B,如果从 Web 浏览器运行,则无法打开端口以接收入站连接
  • 即使 B 能够做到这一点,您也可能不得不面对 NAT 穿越问题。

解决方案是使用/实现中继服务器:

  1. A 打开到中继服务器的出站 HTTP/Websocket 连接
  2. B 打开到中继服务器的出站 HTTP/Websocket 连接
  3. A 在出站通道(例如 HTTP POST)上向中继服务器发送数据
  4. B 在响应中从中继服务器读取数据(例如到 HTTP GET)

说起来容易做起来难......(是的,它是高级 P2P 网络的一个功能,如 JXTA、XMPP、Skype......,是的,很遗憾,您需要一个中间服务器)

检查 ICE 以获取“如何进行 NAT 遍历”的规范

【讨论】:

    【解决方案2】:

    当然,它被称为 P2P。你甚至不需要 Ajax。

    【讨论】:

    • 为此您需要客户端软件。
    • 所以你想要没有客户端的 P2P。我发现了一篇关于这些人这样做的模糊营销文章:solidstatenetworks.com。不知道他们实际上做了什么,但试一试。
    • 它不是像 Bitlet.org 这样没有客户端的常规 P2P。
    • 无论如何,有人需要运行软件。用户 A 需要运行 Web 服务器以供用户 B 下载文件,或者用户 B 需要运行 Web 服务器以供用户 A 向其发布文件。
    • 两个客户端不必通过 HTTP 进行通信。但是,是的,确实需要运行一些东西。
    【解决方案3】:

    我在看的是:WebRTC。

    【讨论】:

      【解决方案4】:

      其他人提到过WebRTC,但这里是一个活生生的例子:

      http://sharefest.me

      【讨论】:

        猜你喜欢
        • 2017-08-29
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 2017-01-04
        • 1970-01-01
        • 2014-07-26
        • 1970-01-01
        相关资源
        最近更新 更多