2012-02-15 64 views
0

这是一个理论问题,但是,我需要添加文件共享功能,以我的网络套接字驱动的聊天应用程序。我可以使用像Amazon S3这样的服务通过发布文件链接来上传要共享的文件,但这需要上传可能已通过本地网络访问的文件(例如在同事之间共享文件) 。点对点文件共享与网络套接字

所以我有这样的想法,它可能以某种方式通过现有的web套接字连接隧道上传/下载/传输。但是,我对HTTP文件传输知之甚少,不知道如何实现它的下一步。是否有限制网络套接字,将阻止这可能吗?

我使用Ruby和EventMachine来实现当前的web套接字实现。如果你能够提供高层次的概述让我开始,那将非常感激。

+0

这仍然涉及一端将文件上传到Web套接字连接(Web服务器)的另一端,另一端从其Web套接字连接的另一端(再次,Web服务器)下载文件。 – 2012-02-15 01:50:46

+0

@大卫是啊,我想你是对的。但它仍然会避免将文件存储在服务器上(我想这可能是我试图实现的优势?) – Andrew 2012-02-15 02:31:51

+0

实际上,我希望这会实现的真正优点是用户可以“共享文件“与实际上传文件之前聊天室中的其他用户进行文件传输,并且直到有人实际请求该文件才开始上传。例如,如果一个文件需要30分钟才能上传,那么在上传完成之前,聊天室将不知道该文件,那么用户也将不得不等待该文件下载,但是,如果上传/下载同时发生它可能会增加传输文件的总时间。 – Andrew 2012-02-15 02:43:15

回答

0

要允许而不需要把它上传到服务器(即同事)来共享文件,你可以现在使用WebRTC DataChannel API创建点对点连接。

+0

酷,甚至没有知道那个。谢谢! – Andrew 2013-01-08 02:09:14

+0

WebRTC支持有限。例如,Safari和IE都不支持这个实验性API。 – Myst 2015-06-27 04:53:20

+0

好的,但是您有更好的解决方案以对等方式传输文件吗? WebSockets显然是一种选择,但您需要使用服务器作为两个浏览器之间的代理。所以要回答这个问题,点对点可以使用WebRTC DataChannels,而不是实验性的API。这是一个定义的标准,但Safari和IE似乎并不是很感兴趣。 – nakib 2015-07-01 11:14:15