通过TCP在两个浏览器客户端之间传输文件

时间:2012-06-05 16:23:47

标签: ajax browser tcp p2p upnp

是否可以创建一个可以实现此方案的网站:

用户A登录网站,上传文件,与用户B建立直接TCP连接,同时下载文件位于同一站点内。没有通过服务器传递文件。

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

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

重点是使用浏览器而不是P2P客户端等其他软件。

这个疯狂的想法可能吗?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我怀疑webRTC涵盖了你所需要的。

您有两个问题:

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

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

  1. A打开到中继服务器的出站HTTP / Websocket连接
  2. B打开到中继服务器的出站HTTP / Websocket连接
  3. A在出站通道上发送数据到中继服务器(例如HTTP POST)
  4. B从响应中的中继服务器读取数据(例如,到HTTP GET)
  5. 说起来容易做起....(是的,它是高级P2P网络的一个功能,如JXTA,XMPP,Skype ......,是的,你很遗憾需要一个中间服务器)

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

    的规范

答案 2 :(得分:0)

我看的是:WebRTC。

答案 3 :(得分:0)

其他人提到了WebRTC,但这是一个实例:

http://sharefest.me