Help us understand the problem. What is going on with this article?

オープンソースの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/にアクセス

peerjs_video_chat.png

ビデオチャットできた!

おわりに

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

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

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

atskimura
株式会社co-meeetingのCEO。最近はSalesforce上で動くアプリを作ってます。コピペテックはじめました😀
http://www.co-meeting.co.jp/
co-meeting
株式会社co-meetingでは、創業以来スローガンである「Happy Work! Happy Life!」を掲げ、世界中の「働く人」の人生を豊かにするソフトウェアサービスを開発・提供することを目標とすると同時に、社員みんなが楽しく充実した仕事ができる会社を目指しています。
https://www.co-meeting.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away