はじめに
ちょうど今日NTT ComがPeerJS互換のSkyWayというWebRTCプラットフォームを発表しましたね。WebRTCは盛り上がるのかもしれません。
先日書いたWebRTCのオープンソースソフトウェアまとめ - Qiita [キータ]でPeerJSがいいんじゃない?と書いたら、NTT ComさんもPeerJSですね!
というわけで、今日はPeerJS用のオープンソースSignalingサーバーPeerServerのインストール手順を書いてみます。
README通りやれば入るのですが、ちょっと追加して、ビデオチャットのデモを動かして、自動起動設定するところまで書いてみます。
インストール手順
前提
Ubuntu 12.04で試した手順です。
PeerServer
aptのパッケージリストを最新にします。
$ sudo apt-get update
新しいnode.jsを入れるためにリポジトリを追加
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:chris-lea/node.js
$ sudo apt-get update
gitとnodejsをインストール
$ sudo apt-get install git-core
$ sudo apt-get install nodejs
PeerServerダウンロード
$ cd /opt
$ git clone https://github.com/peers/peerjs-server.git
PeerServerの依存ライブラリインストール
$ cd peerjs-server
$ npm install
nginx
デモを動かすためのnginxをインストール
$ sudo apt-get install nginx
PeerJSデモの設置
PeerJSダウンロード
$ cd /opt
$ git clone https://github.com/peers/peerjs.git
videochatのデモをnginxの下に配置
$ cd /usr/share/nginx/www/
$ mkdir peerjs
$ cp /opt/peerjs/examples/videochat/* peerjs/
peer.jsをnginxの下に配置
$ cp /opt/peerjs/dist/peer.js peerjs/
以下のdiffのようにindex.htmlを修正
$ vim peerjs/index.html
# diff index.html /opt/peerjs/examples/videochat/index.html
6c6
< <script type="text/javascript" src="peer.js"></script>
---
> <script type="text/javascript" src="/dist/peer.js"></script>
13c13
< var peer = new Peer({host:'<IPアドレス>', port:9000, key: 'peerjs', debug: 3});
---
> var peer = new Peer({ key: 'lwjd5qra8257b9', debug: 3});
PeerServer起動
PeerServerの自動起動設定
$ vim /etc/init/peerjs.conf
description "PeerJS Server"
author "co-meeting Inc."
# Saves log to /var/log/upstart/peerjs.log
console log
# Starts only after drives are mounted.
start on started mountall
stop on shutdown
# Automatically Respawn. But fail permanently if it respawns 10 times in 5 seconds:
respawn
respawn limit 10 5
script
exec node /opt/peerjs-server/bin/peerjs -p 9000 -k peerjs
end script
なお、起動コマンドオプションの-k peerjs
はクライアントのnew Peer({host:'<IPアドレス>', port:9000, key: 'peerjs', debug: 3})
のkeyと一致していればなんでもいいです。
PeerServer起動
$ start peerjs
ファイアウォールの設定
80番と9000番ポートを開ける
$ ufw allow 80
$ ufw allow 9000
アクセス
http://<IPアドレス>/peerjs/
にアクセス
ビデオチャットできた!
おわりに
というわけでPeerServerを立てられたので、PeerJSを使って楽しいWebRTCアプリを作りましょう〜。
PeerJSではPeerServerのクラウド版PeerServer Cloudも提供しているので、それを使うという手もあります。
ちなみにグループビデオチャットとか作ろうとするとPeerJSは面倒だったりします。
EasyRTCやwebRTC.ioはルームという概念があるけど、PeerServerにはないのでそこは他で管理しないといけなかったりします。
よかったらWebRTCのオープンソースソフトウェアまとめ - Qiita [キータ]もご覧ください。
とまたビデオチャットのこと書いてますが、やっぱり エンジニアはテキストコミュニケーションですよね!
co-meetingの新しいスライド資料も公開したので見てみてください。
プロジェクトを円滑に回す 「すごい掲示板」 - co-meeting