WSNet2へのアクセスは、WSNet2.WSNet2Client
クラスを利用します。
このクラスを使ってRoomの作成、入室、観戦、検索を行います。
各メソッドで指定するlogger
、roomLogger
についてはWSNet2のLogger
を参照してください。
WSNet2Client(string baseUri, string appId, string userId, string authData, IWSNet2Logger<WSNet2LogPayload> logger);
baseUri
: WSNet2のLobbyのURLのベースappId
: Wsnetに登録してあるApplication IDuserId
: プレイヤーIDとなるIDauthData
: 認証情報(ゲームAPIサーバから入手)logger
: クライアント用のLogger。部屋には引き継がれない。
void Create(
RoomOption roomOption,
IDictionary<string, object> clientProps,
Action<Room> onSuccess,
Action<Exception> onFailed,
IWSNet2Logger<WSNet2LogPayload> roomLogger);
Roomを作成して入室します。
roomOption
: Roomのプロパティなど。RoomOptionを参照。clientProps
: プレイヤー(自分自身)のカスタムプロパティonSuccess
: 成功時コールバック。引数は作成したRoomonFailed
: 失敗時コールバック。引数は例外オブジェクト。roomLogger
: 部屋用のLogger。他の部屋で使ったものを使い回すとPayloadが上書きされてしまうため注意
RoomOptionの例: 最大人数2人、検索不可、観戦不可、部屋番号付きで指定の公開カスタムプロパティを持つ部屋を作成する
var publicProps = new Dictionary<string, object>(){
{"type", RoomType.Duel},
{"state", RoomState.Waiting},
};
var roomOpt = new RoomOption(2, 1, publicProps, nil).Visible(false).Watchable(false).WithNumber(true);
wscli.CreateRoom(roomOpt, new Dictionary<string, object>(){{"name", "player1"}}, onSuccess, onFailed, logger);
void Join(
string roomId,
Query query,
IDictionary<string, object> clientProps,
Action<Room> onSuccess,
Action<Exception> onFailed,
IWSNet2Logger<WSNet2LogPayload> roomLogger);
RoomIDを指定して、プレイヤーとして入室します。
roomId
: Room IDquery
: 部屋条件クエリclientProps
: プレイヤー(自分自身)のカスタムプロパティonSuccess
: 成功時コールバック。引数は入室したRoom。onFailed
: 失敗時コールバック。引数は例外オブジェクトroomLogger
: 部屋用のLogger。他の部屋で使ったものを使い回すとPayloadが上書きされてしまうため注意
void Join(
int number,
Query query,
IDictionary<string, object> clientProps,
Action<Room> onSuccess,
Action<Exception> onFailed,
IWSNet2Logger<WSNet2LogPayload> roomLogger);
部屋番号を指定して、プレイヤーとして入室します。
number
: 部屋番号query
: 部屋条件クエリclientProps
: プレイヤー(自分自身)のカスタムプロパティonSuccess
: 成功時コールバック。引数は入室したRoom。onFailed
: 失敗時コールバック。引数は例外オブジェクトroomLogger
: 部屋用のLogger。他の部屋で使ったものを使い回すとPayloadが上書きされてしまうため注意
条件に合うRoomの中からランダムに、プレイヤーとして入室します。
void RandomJoin(
uint group,
Query query,
IDictionary<string, object> clientProps,
Action<Room> onSuccess,
Action<Exception> onFailed,
IWSNet2Logger<WSNet2LogPayload> roomLogger);
group
: 検索グループquery
: 部屋条件クエリclientProps
: プレイヤー(自分自身)のカスタムプロパティonSuccess
: 成功時コールバック。引数は入室したRoom。onFailed
: 失敗時コールバック。引数は例外オブジェクトroomLogger
: 部屋用のLogger。他の部屋で使ったものを使い回すとPayloadが上書きされてしまうため注意
void Watch(
string roomId,
Query query,
Action<Room> onSuccess,
Action<Exception> onFailed,
IWSNet2Logger<WSNet2LogPayload> roomLogger);
RoomIDを指定して、観戦入室します。
roomId
: Room IDquery
: 部屋条件クエリonSuccess
: 成功時コールバック。引数は入室したRoom。onFailed
: 失敗時コールバック。引数は例外オブジェクト。roomLogger
: 部屋用のLogger。他の部屋で使ったものを使い回すとPayloadが上書きされてしまうため注意
部屋番号を指定して、観戦入室します。
void Watch(
int number,
Query query,
Action<Room> onSuccess,
Action<Exception> onFailed,
IWSNet2Logger<WSNet2LogPayload> roomLogger);
number
: 部屋番号query
: 部屋条件クエリonSuccess
: 成功時コールバック。引数は入室したRoom。onFailed
: 失敗時コールバック。引数は例外オブジェクト。roomLogger
: 部屋用のLogger。他の部屋で使ったものを使い回すとPayloadが上書きされてしまうため注意
void Search(
uint group,
Query query,
int limit,
Action<PublicRoom[]> onSuccess,
Action<Exception> onFailed);
void Search(
uint group,
Query query,
int limit,
bool checkJoinable,
bool checkWatchable,
Action<PublicRoom[]> onSuccess,
Action<Exception> onFailed);
void Search(
string[] roomIds,
Query query,
Action<PublicRoom[]> onSuccess,
Action<Exception> onFailed);
void Search(
int[] roomNumbers,
Query query,
Action<PublicRoom[]> onSuccess,
Action<Exception> onFailed);
条件に合うRoom一覧を取得します。
group
: 検索グループroomIds
: 部屋IDリストroomNumbers
: 部屋番号リストquery
: 部屋条件クエリlimit
: 件数上限checkJoinable
: true: 入室可能な部屋のみ含めるcheckWatchable
: true: 観戦可能な部屋のみ含めるonSuccess
: 成功時コールバック。引数はRoom一覧onFailed
: 失敗時コールバック。引数は例外オブジェクト
void CurrentRooms(
Query query,
Action<PublicRoom[]> onSuccess,
Action<Exception> onFailed);
自分自身がPlayerとして入室中のRoom一覧を取得します。
query
: 部屋条件クエリonSuccess
: 成功時コールバック。引数はRoom一覧onFailed
: 失敗時コールバック。引数は例外オブジェクト
観戦中のRoomは含みません。 結果のRoomは作成時刻順に昇順ソートされています。