サーバは自前で用意しなくても、iwacam.iit.jpで提供しています。

ですが、iwacam.iit.jpへは誰でも接続できてしまいますので、内輪でIwaCamを使いたいといった用途には向きません。
また、ネットワークが混雑しているときに繋りにくいこともあります。

自前でサーバを用意することで、自由に、かつ安定してIwaCamによるコミュニケーションを行えます。

動作環境

サーバを動作させるにはLinuxの環境が必要です。(開発では最新版のDebianを使っています。)

必要なライブラリ

サーバをビルドにするには以下のライブラリが必要になります。
最新版を入れてください。

Info Debianであれば、パッケージでインストールできます。

名前URLDebianのパッケージ名
boost http://www.boost.org/ libboost-all-dev
google-glog https://code.google.com/p/google-glog/ libgoogle-glog-dev
google-protobuf https://code.google.com/p/protobuf/ libprotobuf-dev

インストール

roomsrv/srcディレクトリでmakeコマンドを実行してください。
以下のファイルがインストールされます。

  • /usr/local/bin/iwacam-roomsrv
  • /usr/local/etc/iwacam-roomsrv.conf
インストール手順:
% tar zxf roomsrv-4.0.0.tar.gz
% cd roomsrv-4.0.0/roomsrv/src
% make clean all
% sudo make install

iwacam-roomsrvを実行するとサーバが起動します。(終了するには Control+C を押します)

% sudo iwacam-roomsrv

特に指定しない限り、 /var/log/iwacam-roomsrv以下にログファイルを作成しますので、書き込み権限が必要になります。

オプション

以下のコマンドラインオプションがあります。

Option:
  -h [ --help ]                                             print help
  -v [ --version ]                                          print version number
  -c [ --config ] arg (=/usr/local/etc/iwacam-roomsrv.conf) roomsrv.conf path
  -V [ --verbose ]                                          verbose mode
  -D [ --daemon ]                                           daemon mode

-cオプションで設定ファイルを指定できます。

% sudo iwacam-roomsrv -c /foo/bar/iwacam-roomsrv.conf

-Dオプションを付けて実行すると、バックグラウンドで起動します。
(ずっと動かし続ける場合は、-Dオプションではなく runitやdaemontools経由での実行を推奨します)

% sudo iwacam-roomsrv -D

設定ファイルで、サーバが使用するネットワークのポート番号や、ログディレクトリなどを変更できます。

設定ファイルの場所は /usr/local/etc/iwacam-roomsrv.confです。

以下の設定項目があります。

項目名 説明 デフォルト値
address サーバが使用するIPアドレス 0.0.0.0 218.42.146.71
port サーバが使用するポート
指定したTCPポート&UDPポートを使用します。
9002 9012
logdir ログファイルを出力するディレクトリを指定します。 /var/log/iwacam-roomsrv /home/user/var/log/iwacam-roomsrv
設定ファイルの例:
# から始まる行はコメント行で無視されます。
address = 218.42.146.71
port    = 9012
logdir  = /home/user/var/log/iwacam-roomsrv

iwacam-roomsrvは設定で指定したディレクトリにログファイルを作成します。
(特に指定しない場合、/var/log/iwacam-roomsrvに出力します)

ファイル名について

ファイル名には日付やIP・ポート番号の情報が含まれ、以下の形式になっています。

roomsrv.date_{YYYYMMDD}.address_{ADDRESS}.port_{PORT}.log

具体的には以下のようなファイル名になります。

roomsrv.date_20110407.address_0.0.0.0.port_9002.log

ログが記録されるタイミング・内容について

タイミング 内容
サーバが起動したとき
  • サーバが使用しているポート番号(TCP&UDP)
クライアントが接続したとき
  • サーバが使用しているポート番号(TCP&UDP)
  • クライアントが使用しているポート番号(TCP&UDP)
  • クライアントの名前
クライアントが切断したとき
  • サーバが使用しているポート番号(TCP)
  • クライアントが使用しているポート番号(TCP)
  • クライアントの名前
  • 接続していた秒数
サーバが終了したとき
  • サーバが使用しているポート番号(TCP&UDP)

出力例

・サーバが起動したとき
[INFO]  2011-04-07T20:20:04.407481      pid:25481       [roomsrv started]       server_tcp_endpoint:0.0.0.0:9002, server_udp_endpoint:0.0.0.0:9002

・クライアントが接続したとき
[INFO]  2011-04-07T20:20:16.610886      pid:25481       [client connected]      remote_tcp_endpoint:192.168.2.8:50230, server_tcp_endpoint:0.0.0.0:9002
[INFO]  2011-04-07T20:20:16.611551      pid:25481       [client login]  remote_tcp_endpoint:192.168.2.8:50230, server_tcp_endpoint:0.0.0.0:9002, name:山田太郎 (320x240 50% 4fps)
[INFO]  2011-04-07T20:20:16.644460      pid:25481       [client register udp_endpoint]  client_udp_endpoint:192.168.2.8:55864, name:山田太郎 (320x240 50% 4fps)

・クライアントが切断したとき
[INFO]  2011-04-07T20:20:53.782754      pid:25481       [client disconnected]   remote_tcp_endpoint:192.168.2.8:50230, server_tcp_endpoint:0.0.0.0:9002, total_time:37sec, name:山田太郎 (320x240 50% 4fps)

・サーバが終了したとき
[INFO]  2011-04-07T20:25:58.592872      pid:25481       [roomsrv shutting down] server_tcp_endpoint:0.0.0.0:9002, server_udp_endpoint:0.0.0.0:9002

ログに記載されている情報の内容は下記の通りです。

項目名 内容
server_tcp_endpointサーバが使用しているIP・ポート番号(TCP)
server_udp_endpointサーバが使用しているIP・ポート番号(UDP)
remote_tcp_endpointクライアントのIP・ポート番号(TCP)
nameクライアントの名前
client_udp_endpointクライアントのIP・ポート番号(UDP)
total_time接続していた秒数