BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース PeerJS 0.1.7: ブラウザにおけるP2PのためのWebRTCラッパー

PeerJS 0.1.7: ブラウザにおけるP2PのためのWebRTCラッパー

原文(投稿日:2013/03/16)へのリンク

 

Michelle Bu氏とEric Zhang氏は3月6日、WebRTCのラッパーとしてPeerJS 0.1.7のリリースを発表した。WebRTCはW3CがブラウザでのP2P通信をやりやすくするために作っているものだ。

最近、WebSocketの役割が大きくなっているが、PeerJSはサーバ中心のデータ転送を抜本的に変革するものだ。Bu氏は次のように語っている。

"WebSocketとWebRTC DataChannelは同じように見えます。どちらもバイナリをサポートしており、あるクライアントから任意のデータを送って、最終的には別のクライアントに届けることができます。ところが、両者には根本的な違いがあります。WebRTC DataChannelを使うと、中央サーバに至る情報がなくても、ピアはお互いにデータを送り合うことができます。たとえば、FacebookやGoogleのチャットを考えてみましょう。すぐとなりに座っている人にメッセージを送るのにも最低1秒はかかります。あなたのコンピュータからFacebookのサーバまで、メッセージは物理的に50、60ホップ経るためです。ネットワークの観点から見て、これは最適であるとは言えません。理想を言えば、このパケットは20フィートほどで届くべきです。WebRTCを使えば、それが可能になります。ネットワークのトポロジーは、1匹の蜘蛛ようなものから、蜘蛛の巣のようなものへと変わっていくのです。」

この新たなエコシステムを促進すべく、PeerJSは複雑なWebRTC使用をわかりやすいAPIにラップするために作られた。

  • Chromeのバージョン26以降を用意する。 現時点では、canaryまたはbetaバージョンでしか動かない。今後数ヶ月、ブラウザ互換性アップデートでWebRTC実装状況をウォッチしておこう。Bu氏は、この2、3ヶ月でFirefoxの最新版対応できると見積もっている。
     
  • PeerServerをセットアップする。ホストされているサービスにサインナップするか、ソースを取得して自分でビルドするか、node.jsでnpm install peerをしよう。「一度ピアにつながれば、さらなるピアにつなぐ予定がなければもうサーバは不要です」とBu氏は言う。
     
  • コードを動かす。hello worldのサンプルを見てみよう。「PeerJSは、仲介サーバの構築と実行、複雑なWebRTC PeerConnectionおよびDataChannel仕様の理解、といった問題を軽減します。これにはセットする必要のある無数のハンドラ、考慮する必要のあるエッジケース、ハンドルする必要のあるブラウザの違いが含まれます」Bu氏は言う。

わずかなチャットデモを除き、PeerJSのサンプルは流動的なWebRTC仕様の影響をほとんど受けていない。例外は、PeerKitだ。これはP2P CDNとしてZhang氏が立ち上げた新しいプロジェクトだ。「ネバダの中央サーバからではなく、喫茶店で同じサイトをたまたま閲覧している隣の人から、猫画像が提供される世界を想像してみてください」とBu氏は言う。

この1、2年で、ブラウザ間の安全な双方向データ転送に基づく次世代アプリが出てくるだろうが、当面は「(WebRTCは)開発者のお祭りみたいなものです」Bu氏は言う。「クライアントの状態をすべて考えると、取り組むべき技術的課題はたくさんあります。」

 

この記事に星をつける

おすすめ度
スタイル

BT