サーバは自前で用意しなくても、iwacam.iit.jpで提供しています。
ですが、iwacam.iit.jpへは誰でも接続できてしまいますので、内輪でIwaCamを使いたいといった用途には向きません。
また、ネットワークが混雑しているときに繋りにくいこともあります。
自前でサーバを用意することで、自由に、かつ安定してIwaCamによるコミュニケーションを行えます。
サーバを動作させるにはLinuxの環境が必要です。(開発では最新版のDebianを使っています。)
サーバをビルドにするには以下のライブラリが必要になります。
最新版を入れてください。
Info Debianであれば、パッケージでインストールできます。
名前 | URL | Debianのパッケージ名 |
---|---|---|
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コマンドを実行してください。
以下のファイルがインストールされます。
% 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
タイミング | 内容 |
---|---|
サーバが起動したとき |
|
クライアントが接続したとき |
|
クライアントが切断したとき |
|
サーバが終了したとき |
|
・サーバが起動したとき [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 | 接続していた秒数 |