mrs_pusher man ページ
名前
書式
mrs_pusher [options]
説明
- mrs_room サーバに接続し、特定のルームに入室している全クライアントに対しメッセージを送信します。
- 事前に mrs_room サーバが起動している必要があります。
- --receive の設定オプションにより、mrs_room サーバに対して 受信モード で起動するクライアントとして動作します。
- --send_type の設定オプションに get を指定することにより、mrs_room サーバに対して ルーム一覧の取得 ができます。
- Webサーバ(PHP)を介した mrs_pusher の実行方法については、下記リンクをご覧ください。
CentOS 7.x の場合
MacOSX/macOS の場合
例
- mrs_room サーバに接続するためには、以下のパラメータを使い、接続先サーバアドレスとポート番号を指定します。
以下は mrs_room サーバアドレスが 192.168.0.253, ポート番号が 33333 の場合の指定方法です。
mrs_pusher --address 192.168.0.253 --port 33333
- mrs_room サーバの特定ルームに入室するためには、上記に加え、ルームIDとプレイヤーIDの指定が必要です。
以下はルームID=20000、プレイヤーID=1000で入室する場合の指定方法です。
mrs_pusher --address 192.168.0.253 --port 33333 --room_id 20000 --player_id 1000
- 入室したルームでデータを送信するためには、更に「送信方法」「送信データの種類(ID)」「送信データの内容」を指定します。
以下は送信データの種類=50、送信データの内容を"abcdefg1234567890"として、自身を含むルーム内プレイヤー全員に対し送信する場合の指定方法です。
mrs_pusher --address 192.168.0.253 --port 33333 --room_id 20000 --player_id 1000 --send_type broadcast --payload_type 50 --payload abcdefg1234567890
- 更に、ルーム作成時/入室/退室時に独自のメッセージを送信するためには、上記に加えて独自送信データの内容を指定します。
mrs_pusher --address 192.168.0.253 --port 33333 --room_id 20000 --player_id 1000 --send_type broadcast --payload_type 50 --payload abcdefg1234567890 --make_data "CreateRoom" --invite_data "JoinRoom" --exit_data "LeaveRoom"
- 特定のルームのルームオーナーを変更するためには、ルームオーナー変更リクエストと、変更後ルームオーナーとなるプレイヤーIDを指定します。
以下はルームID=20000のルームオーナーについて、プレイヤーID=2000に変更し、かつ変更時に「ChangeOwner:PlayerID=2000」の文字列情報を送信する場合の指定方法です。
mrs_pusher --address 192.168.0.253 --port 33333 --room_id 20000 --player_id 1000 --send_type change --change_owner_id 2000 --change_owner_data "ChangeOwner:PlayerID=2000"
- 以下のように設定すれば、mrs_room サーバに対して受信専用モードで起動するクライアントとして動作します。
mrs_pusher --address 192.168.0.253 --port 33333 --send_type receive --receive
- 以下のように設定すれば、mrs_room サーバに属するルーム一覧の情報について取得することができます。
mrs_pusher --address 192.168.0.253 --port 33333 --send_type get
mrs_room について
ルーム
- mrs_room サーバでは、多目的の通信処理として使用される「ルーム」を管理します。
- mrs_room サーバ1台で管理可能な最大ルーム数(理論値)は、18446744073709551615(UINT64_MAX)です。
- mrs_room サーバは、ルームを識別するために、一意の識別値となる「ルームID(room_id)」の情報を持ちます。
- ルームを作成する場合、自身のルームIDを指定する必要があり、1サーバ内で同一のルームIDを持つルームが存在する場合、作成に失敗します。
- ルームに入室する場合、入室先となるルームIDを指定する必要があり、指定するルームIDを持つルームが開設されていない場合、入室に失敗します。
- ルームには、ルームを管理する「オーナー」の権限を有するクライアントが存在します。標準設定ではルーム開設者がオーナーですが、自由にオーナー権限の切り替えが可能です。
プレイヤー
- mrs_room サーバで管理している「ルーム」内にて扱われるクライアントのことです。
- 1ルーム内で管理できる最大プレイヤー数(理論値)は、4294967295(UINT32_MAX)です。
- ルーム内のクライアントを識別するために、一意の識別値となる「プレイヤーID(player_id)」の情報を持ちます。
- ルームに入室する場合、自身のプレイヤーIDを指定する必要があり、入室先のルームに同一の「プレイヤーID」を持つクライアントが存在した場合、入室に失敗します。
- 異なるルームであれば、同一のプレイヤーIDを持つクライアントを接続&入室させることは可能です。
ルーム内データ送信
- 各クライアントは、同一ルームに入室したクライアントに対し、自由にデータを送信することができます。
- データを送信する場合、受信側が「どのようなデータを受信したか」を識別するための「送信データタイプ(payload_type)」を指定する必要があります。
- 1度に送信できるデータの最大サイズ(理論値)は、4294967295バイト(UINT32_MAX)です。
- 送信するデータは基本的にバイナリデータとして送受信されます。異なるプラットフォームでテキストデータを送受信する場合、必要に応じて適宜デコード/エンコード処理を実装してください。
- 送信方式には以下の方法があります。
送信方式 |
内容 |
broadcast |
ルーム内に存在する、自身を含めた全てのクライアントに対してデータを送信します。 |
othercast |
ルーム内に存在する、自身を除く全てのクライアントに対してデータを送信します。 |
unicast |
ルーム内に存在する、特定の単体クライアントに対してのみデータを送信します。 |
multicast |
ルーム内に存在する、特定の複数クライアントに対してデータを送信します。 |
ownercast |
ルーム内に存在する、オーナーの権限を有する単体クライアントに対してのみデータを送信します。 |
オプション一覧
-h, --help
mrs_pusher -h
mrs_pusher --help
-t, --protocol
- 接続先 mrs_room サーバへの接続プロトコルを指定します。
- TCPプロトコルによるサーバ接続(MRS_CONNECTION_TYPE_TCP)を指定する場合、以下のように記述します。
mrs_pusher -t tcp
mrs_pusher --protocol tcp
- UDPプロトコルによるサーバ接続(MRS_CONNECTION_TYPE_UDP)を指定する場合、以下のように記述します。
mrs_pusher -t udp
mrs_pusher --protocol udp
- WebSocketプロトコルによるサーバ接続(MRS_CONNECTION_TYPE_WS)を指定する場合、以下のように記述します。
mrs_pusher -t ws
mrs_pusher --protocol ws
- WebSocketSecureプロトコルによるサーバ接続(MRS_CONNECTION_TYPE_WSS)を指定する場合、以下のように記述します。
mrs_pusher -t wss
mrs_pusher --protocol wss
- 指定がなければ tcp がデフォルトで設定されます。
-a, --address
- 接続先 mrs_room サーバのIPアドレスを指定します。
- 現在は IPv4 のみですが、将来的に IPv6 に対応します。
- 記述例は以下の通りです。
mrs_pusher -a 192.168.0.253
mrs_pusher --address 192.168.0.253
- 指定がなければ 127.0.0.1 がデフォルトで設定されます。
-p, --port
- 接続先 mrs_room サーバのポート番号(0~65535)を指定します。
- 記述例は以下の通りです。
mrs_pusher -p 7000
mrs_pusher --port 7000
- 指定がなければ 12345 がデフォルトで設定されます。
-s, --send_type
- 入室したルーム内で送信するルーム内メッセージの送信方法について、以下のいずれかの値を指定します。
オプション |
内容 |
broadcast |
ルーム内に存在する、自身を含めた全てのクライアントに対してデータを送信します。 |
othercast |
ルーム内に存在する、自身を除く全てのクライアントに対してデータを送信します。 |
unicast |
ルーム内に存在する、特定の単体クライアントに対してのみデータを送信します。 この送信方法を指定した場合、別途 ユニキャスト送信先プレイヤーID の指定が必要です。 |
multicast |
ルーム内に存在する、特定の複数クライアントに対してデータを送信します。 |
ownercast |
ルーム内に存在する、オーナーの権限を有する単体クライアントに対してのみデータを送信します。 |
write |
MRSサーバに対し、独自レコードを送信します。 この送信方法を指定した場合、payload_type および payload で独自データを指定してください。 |
change |
ルームオーナーを変更します。 |
receive |
受信専用端末として動作します。 |
get |
ルーム一覧情報を取得します。 |
close |
ルームを削除します。 |
create |
ルームを作成します。 |
- ルーム内に存在する、自身を含めた全てのクライアントに対してデータを送信する場合、以下のように記述します。
mrs_pusher -s broadcast
mrs_pusher --send_type broadcast
- ルーム内に存在する、自身を除く全てのクライアントに対してデータを送信する場合、以下のように記述します。
mrs_pusher -s othercast
mrs_pusher --send_type othercast
- ルーム内に存在する、特定の単体クライアントに対してのみデータを送信する場合、以下のように記述します。
mrs_pusher -s unicast
mrs_pusher --send_type unicast
- ルーム内に存在する、特定の複数クライアントに対してデータを送信する場合、以下のように記述します。
mrs_pusher -s multicast
mrs_pusher --send_type multicast
- ルーム内に存在する、オーナーの権限を有する単体クライアントに対してのみデータを送信する場合、以下のように記述します。
mrs_pusher -s ownercast
mrs_pusher --send_type ownercast
mrs_pusher -s write -l 100 -d abcdefg
mrs_pusher --send_type write --payload_type 100 --payload abcdefg
- ルームオーナーの変更を要求する場合、以下のように記述します。
この送信方法を指定した場合、change_owner_id で、新規に設定されるルームオーナーのプレイヤーIDを指定してください。
また change_owner_data を指定することで、ルームオーナーのプレイヤーIDが変更された時に、独自の情報を受け取ることができます。
mrs_pusher -s change -o 100
mrs_pusher --send_type change --change_owner_id 100
- 送信せず、受信専用端末として動作させる場合、以下のように記述します。
mrs_pusher -s receive
mrs_pusher --send_type receive
- ルーム一覧情報を取得する場合、以下のように記述します。
mrs_pusher -s get
mrs_pusher --send_type get
- ルームを削除する場合、以下のように記述します。この送信方法を指定した場合、room_id で削除するルームIDを指定してください。
mrs_pusher -s close -r 10000
mrs_pusher --send_type close --room_id 10000
- ルームを作成する場合、以下のように記述します。この送信方法を指定した場合、room_id で作成するルームIDを指定してください。
mrs_pusher -s create -r 10000
mrs_pusher --send_type create --room_id 10000
- 指定がなければ broadcast がデフォルトで設定されます。
-e, --encrypt
- ECDH暗号化処理を使用するかどうかを指定します。
- 暗号化処理を有効にする場合、以下のように記述します。
mrs_pusher -e on
mrs_pusher --encrypt on
- 暗号化処理を無効にする場合、以下のように記述します。
mrs_pusher -e off
mrs_pusher --encrypt off
- 指定がなければ off がデフォルトで設定されます。
-r, --room_id
- mrs_room サーバで作成or入室するルームのID(0~18446744073709551615)を指定します。
- 記述例は以下の通りです。
mrs_pusher -r 10000
mrs_pusher --room_id 10000
-y, --player_id
- mrs_room サーバで作成or入室するプレイヤーのID(0~4294967295)を指定します。
- 記述例は以下の通りです。
mrs_pusher -y 10000
mrs_pusher --player_id 10000
-l, --payload_type
- ユーザー側で任意に設定することが可能な、送受信するデータの種類(0~65535)を指定します。
この値について利用者が設定する場合、256~511を除く、1~65535 の数値を指定してください
(256~511の数値は、MRSルームサーバで予約されています)。
- 記述例は以下の通りです。
mrs_pusher -l 10000
mrs_pusher --payload_type 10000
-d, --payload
- MUNサーバに送信されるデータの内容を指定します。
- テキストデータを送信する場合、以下のように記述します。
(後述にもありますが、文字列の先頭2文字を「0x」として送信することはできません。)
mrs_pusher -d abcdefg
mrs_pusher --payload abcdefg
- バイナリデータを送信する場合、文字列の先頭2文字を「0x」として記述します。
mrs_pusher -d 0x0123456789abcdef
mrs_pusher --payload 0x0123456789abcdef
- 指定がなければ 0x00112233deaaffaa00aa00ff がデフォルトで設定されます。
-m, --make_data
- ルーム作成時に扱われる独自データの送信内容を指定します。
- ルーム作成時の独自データに「テキストデータ」を送信する場合、以下のように記述します。
(後述にもありますが、文字列の先頭2文字を「0x」として送信することはできません。)
mrs_pusher -m abcdefg
mrs_pusher --make_data abcdefg
- ルーム作成時の独自データに「バイナリデータ」を送信する場合、文字列の先頭2文字を「0x」として記述します。
mrs_pusher -m 0x0123456789abcdef
mrs_pusher --make_data 0x0123456789abcdef
- 指定がなければ、ルーム作成時に独自データを送信しません。
-i, --invite_data
- ルーム入室時に扱われる独自データの送信内容を指定します。
- ルーム入室時の独自データに「テキストデータ」を送信する場合、以下のように記述します。
(後述にもありますが、文字列の先頭2文字を「0x」として送信することはできません。)
mrs_pusher -i abcdefg
mrs_pusher --invite_data abcdefg
- ルーム入室時の独自データに「バイナリデータ」を送信する場合、文字列の先頭2文字を「0x」として記述します。
mrs_pusher -i 0x0123456789abcdef
mrs_pusher --invite_data 0x0123456789abcdef
- 指定がなければ、ルーム入室時に独自データを送信しません。
-x, --exit_data
- ルーム退室時に扱われる独自データの送信内容を指定します。
- ルーム退室時の独自データに「テキストデータ」を送信する場合、以下のように記述します。
(後述にもありますが、文字列の先頭2文字を「0x」として送信することはできません。)
mrs_pusher -x abcdefg
mrs_pusher --exit_data abcdefg
- ルーム退室時の独自データに「バイナリデータ」を送信する場合、文字列の先頭2文字を「0x」として記述します。
mrs_pusher -x 0x0123456789abcdef
mrs_pusher --exit_data 0x0123456789abcdef
-z, --close_data
- ルーム削除時に扱われる独自データの送信内容を指定します。
- ルーム削除時の独自データに「テキストデータ」を送信する場合、以下のように記述します。
(後述にもありますが、文字列の先頭2文字を「0x」として送信することはできません。)
mrs_pusher -z abcdefg
mrs_pusher --close_data abcdefg
- ルーム削除時の独自データに「バイナリデータ」を送信する場合、文字列の先頭2文字を「0x」として記述します。
mrs_pusher -z 0x0123456789abcdef
mrs_pusher --close_data 0x0123456789abcdef
- 指定がなければ、ルーム退室時に独自データを送信しません。
-u, --target_ids
- ユニキャスト送信、またはマルチキャストを実行する際の、送信相手先のプレイヤーIDを指定します。
- ルーム内メッセージの送信方法 について unicast または multicast を指定し、かつ任意の単体のプレイヤーに対して送信したい場合には、この値を設定する必要があります。
- ユニキャスト送信する場合、送信先指定の記述例は以下の通りです。
mrs_pusher -s unicast -u 5000
mrs_pusher --send_type unicast --target_ids 5000
- マルチキャスト送信する場合、送信先指定の記述例は以下の通りです。オプションで指定するID群をカンマ(,)やハイフン(-)で区切ることにより、複数のプレイヤーを対象に送信できます。
mrs_pusher -s multicast -u 5000,6000,7000
mrs_pusher -s multicast -u 5000-6000-7000
mrs_pusher --send_type multicast --target_ids 5000,6000,7000
mrs_pusher --send_type multicast --target_ids 5000-6000-7000
- 指定がなければ、送信を実行したプレイヤーのIDが指定されます(=echo送信)。
-o, --change_owner_id
- ルームオーナー変更リクエストを送信し変更された際の、新たにルームオーナーとなるプレイヤーIDを指定します。
- ルーム内メッセージの送信方法 について change を指定し、かつ任意のプレイヤーをルームオーナーに指定したい場合には、この値を設定する必要があります。
- 記述例は以下の通りです。
mrs_pusher -o 100
mrs_pusher --change_owner_id 100
- 指定がなければ、ルームオーナー変更リクエストを送信したプレイヤーが指定されます。
-w, --change_owner_data
- ルームオーナー変更時に扱われる独自データの送信内容を指定します。
- ルームオーナー変更時の独自データに「テキストデータ」を送信する場合、以下のように記述します。
(後述にもありますが、文字列の先頭2文字を「0x」として送信することはできません。)
mrs_pusher -w abcdefg
mrs_pusher --change_owner_data abcdefg
- ルームオーナー変更時の独自データに「バイナリデータ」を送信する場合、文字列の先頭2文字を「0x」として記述します。
mrs_pusher -w 0x0123456789abcdef
mrs_pusher --change_owner_data 0x0123456789abcdef
- 指定がなければ、ルームオーナー変更時に独自データを送信しません。
-c, --receive
- 受信待ちをするデータのパケット数(個数)を指定します。指定された数のデータの受信を終えるまで「受信待ち」の状態を維持します。
- 記述例は以下の通りです。この場合10個のパケット受信を待ちます。
mrs_pusher -c 10
mrs_pusher --receive 10
- 以下のようにマイナスの値を設定した場合、受信待ちは「無限ループ」します。
mrs_pusher --receive -1
- 以下のように単体(代入値なし)で指定した場合にも、受信待ちは「無限ループ」します。
mrs_pusher --receive
-v, --receive_timeout
- 受信待ちを続ける時間をミリ秒単位で指定します。
- 指定された時間まで「受信待ち」の状態を保ちます。
- 0 を指定した場合には、受信待ちは「無限ループ」します。
- 記述例は以下の通りです。この場合受信待ち状態を10秒間保ちます。
mrs_pusher -v 10000
mrs_pusher --receive_timeout 10000
- 以下のようにゼロ値を設定した場合、受信待ちは「無限ループ」します。
mrs_pusher -v 0
mrs_pusher --receive_timeout 0
-f, --log_file
- 実行結果のログを保存するファイル、およびそのパス名を指定します。
- このパラメータを指定している場合、指定されたファイルパスにログファイルを保存します。
- すでに同一箇所に同じファイルが存在する場合、そのファイルに追記書き込みします。
- 記述例は以下の通りです。
mrs_pusher -f /home/mrs_pusher/mrs_pusher.log
mrs_pusher --log_file /home/mrs_pusher/mrs_pusher.log
- 指定がなければ、ログをファイル出力せず、コンソール上に標準出力します。
-q, --safety_time_sec
- 作成済みのルームにて、ルーム内プレイヤー人数が0人の状態になって以降、サーバからルームが削除されるまでのタイムリミットについて、その秒数を指定します。
- 記述例は以下の通りです。以下の場合、ルーム内プレイヤー人数が0人の状態になって以降60秒経過後にルームが削除されます。
mrs_pusher -q 60
mrs_pusher --safety_time_sec 60
Copyright © 2019 MONOBIT ENGINE Inc.