Posted at

オープンソースのWebRTCサーバー「PeerServer」インストール手順

More than 5 years have passed since last update.


はじめに

ちょうど今日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は面倒だったりします。

EasyRTCwebRTC.ioはルームという概念があるけど、PeerServerにはないのでそこは他で管理しないといけなかったりします。

よかったらWebRTCのオープンソースソフトウェアまとめ - Qiita [キータ]もご覧ください。

とまたビデオチャットのこと書いてますが、やっぱり エンジニアはテキストコミュニケーションですよね!

co-meetingの新しいスライド資料も公開したので見てみてください。

プロジェクトを円滑に回す 「すごい掲示板」 - co-meeting