Webブラウザ同士のリアルタイムP2P通信機能「WebRTC」をより容易に利用するためのライブラリ「PeerJS」

 Webブラウザ同士での非同期通信を容易に行うためのJavaScriptライブラリ「PeerJS」が公開されている。FirefoxやGoogle Chromeなどに搭載されている「WebRTC」機能をラップするライブラリで、数行のコードだけでWebRTCを利用できるようになるという。

 Google ChromeやFirefoxにはプラグインなしにWebブラウザ同士でのリアルタイム通信を行うためのフレームワーク「WebRTC」が搭載されている。WebRTCでは映像や音声といったデータをストリーム形式で送受信する仕組みも用意されており、これらを利用することでP2P型のリアルタイム音声/ビデオチャットアプリケーションなどを構築できる。PeerJSはこのWebRTCをより容易に取り扱うためのJavaScriptライブラリで、少ないコードでWebブラウザ間の通信を実現できるという。カルフォルニア大学バークレー校に所属するEric Zhang氏とMichelle Bu氏が始めたプロジェクトで、ライセンスはMITライセンス。

 WebRTCではクライアント同士が接続する際に中央サーバーによる仲介が必要となるが、PeerJSではこの中央サーバーの機能をNode.jsを使って実装した「PeerServer」が用意されており、これらを組み合わせることで容易にWebブラウザ間が直接通信を行うアプリケーションを開発できる。PeerJSを利用するにはPeerServerが必須だが、開発者向けとして公開されているPeerServerを50接続までという制限付きで無料で利用できる「PeerServer Cloud service」も用意されており、これを利用することで独自にPeerServerを構築することなしにPeerJSの機能が利用できる。

 PeerJSはまだ開発中の段階で、現在はバイナリデータのやり取りなどWebRTCの一部機能のみをサポートしている。また、対応するWebブラウザはGoogle Chromeの開発版(バージョン26)以降に限られている。コードのアップデートは頻繁に行われており、今後はFirefoxのサポートも検討されているとのこと。PeerJSのソースコードはGitHubから入手できる。また、PeerServerについてはNode.jsのパッケージシステムであるnpm経由でも入手できる。

PeerJS
http://peerjs.com/

npmのPeerServerページ
https://npmjs.org/package/peer