2012-02-15 21 views
0

これは理論的な質問のようなものですが、Webソケット搭載のチャットアプリケーションにファイル共有機能を追加する必要があります。 Amazon S3のようなサービスを使用して、ファイルへのリンクを投稿することで共有するファイルをアップロードすることはできますが、ローカルネットワーク経由ですでにアクセス可能なファイルをアップロードすることができます(例えば、同僚間でファイルを共有する) 。Webソケットとのピアツーピアファイル共有

私は、既に存在するウェブソケット接続を通してアップロード/ダウンロード/転送を何とかトンネルすることが可能かもしれないという考えを持っていました。しかし、それを実装する方法の次のステップを知るには、HTTPファイル転送について十分に知りません。これを防ぐためのWebソケットには制限がありますか?

現在のWebソケット実装にRubyとEventMachineを使用しています。あなたが私を始めるための高レベルの概要を提供できれば、それは非常に高く評価されるでしょう。

+0

それでも、Webソケット接続(Webサーバー)のもう一方の端にファイルをアップロードし、もう一方の端でWebソケット接続(もう一度Webサーバー)のもう一方の端からファイルをダウンロードする必要があります。 –

+0

@Davidええ、あなたが正しいと思います。しかし、それでもファイルをサーバーに保存することは避けられます(これは私が達成しようとしている利点かもしれませんね)。 – Andrew

+0

実際に、私がこれを達成することを望んでいる本当の利点は、ユーザーが "ファイルが実際にアップロードされる前にチャットルーム内の残りのユーザと「ファイル」して、誰かが実際にファイルを要求するまでアップロードを開始しません。たとえば、ファイルのアップロードに30分かかった場合、そのアップロードが完了するまでチャットルームはそのファイルについて知らず、アップロード/ダウンロードが同時に起こっていれば、そのファイルがダウンロードされるまで待つ必要がありますファイルを転送するのにかかる時間が全体的に長くなる可能性があります。 – Andrew

答えて

0

WebRTC DataChannel APIを使用して、ピアツーピア接続を作成します。

+0

クールで、そのことについても知りませんでした。ありがとう! – Andrew

+0

WebRTCのサポートには制限があります。たとえば、SafariとIEの両方はこの実験的なAPIをサポートしていません。 – Myst

+0

しかし、ピアツーピアの方法でファイルを転送するためのより良いソリューションはありますか? WebSocketsは明らかにオプションですが、2つのブラウザ間でプロキシとしてサーバーを使用する必要があります。したがって、この質問に答えるために、ピアツーピアはWebRTC DataChannelsを使用して利用でき、実験的なAPIではありません。定義済みの標準ですが、SafariとIEはそれほど興味がありません。 – nakib

1

ここでファイルを転送するだけのWebソケットを使用するとJavaScript File APIプロジェクトの例を示します(つまり、同僚が)することができます、ファイルをサーバーにアップロードすることなく共有することができるようにするためにhttp://www.github.com/thirtysixthspan/waterunderice

関連する問題