2012-02-15 65 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