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

  • 87
    Like
  • 0
    Comment
More than 1 year has 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/にアクセス

peerjs_video_chat.png

ビデオチャットできた!

おわりに

というわけでPeerServerを立てられたので、PeerJSを使って楽しいWebRTCアプリを作りましょう〜。
PeerJSではPeerServerのクラウド版PeerServer Cloudも提供しているので、それを使うという手もあります。

ちなみにグループビデオチャットとか作ろうとするとPeerJSは面倒だったりします。
EasyRTCwebRTC.ioはルームという概念があるけど、PeerServerにはないのでそこは他で管理しないといけなかったりします。
よかったらWebRTCのオープンソースソフトウェアまとめ - Qiita [キータ]もご覧ください。

とまたビデオチャットのこと書いてますが、やっぱり エンジニアはテキストコミュニケーションですよね!
co-meetingの新しいスライド資料も公開したので見てみてください。
プロジェクトを円滑に回す 「すごい掲示板」 - co-meeting