ユーザレートに関係なく待機中ユーザと即マッチングします。
API PATH | /matching/simple |
---|---|
アクセストークンチェック | × |
メンテナンスチェック | × |
バリデーションチェック | × |
ヘルスチェック | 〇 ※定期的に{"cmd" : "hc"}を送信してください。 |
本APIには、クライアントからのメッセージ情報はありません。
マッチング相手が見つかったタイミングでサーバから本メッセージが送信されます。
No. | en | jp | 型 | 制約 | 備考 |
---|---|---|---|---|---|
1. | cmd | コマンド | String | 固定値[success] | マッチング完了 |
2. | id | マッチングID | long | マッチ相手と本IDにてゲームサーバで識別してデータのやり取りを行う | |
3. | url | マッチング後の接続URL | String | マッチング完了後のゲームサーバURL |
{
"cmd" : "success",
"id" : 0,
"url" : "String"
}
No. | Close Code | 説明 |
---|---|---|
1. | 3000 | キャンセル |
2. | 3001 | タイムアウト タイムアウトを実装しマッチング相手が見つからなかった場合は必ず切断処理を実装してください。 |
3. | 3002 | 成功 コマンドsuccessを受けとった後、本コードにて切断してください。 |
API固有のClass/Dto/Modelはありません。
No. | API |
---|---|
1 | 簡易リレー(1vs1 簡易マッチング用) |
※メンテナンスの為、停止・エラーの場合があります。
var WS = null;
var URL = "ws://sample-ws-sample.semgame.net/matching/simple";
var TIMER_HC = null;
var TIMER_MATCHING = null;
var CLOSE_CANCEL = 3000;
var CLOSE_TIMEOUT = 3001;
var CLOSE_SUCCESS = 3002;
var MATCHING_TIMEOUT_SEC = 10;
var MATCHING_START_TIME = null;
var HC_INTERVAL_SEC = 5000;
$(document).ready(function () {
$(document).on("click", "#cancel", (function() {
//対戦キャンセル時
WS.close(CLOSE_CANCEL);
}));
$(document).on("click", "#start", (function() {
//ゲーム開始時
WS = new WebSocket(URL);
WS.onopen = onOpen;
WS.onmessage = onMessage;
WS.onclose = onClose;
WS.onerror = onError;
TIMER_HC = setInterval(__timerHealthCheck, HC_INTERVAL_SEC);
TIMER_MATCHING = setInterval(__timerMatching, 1000);
MATCHING_START_TIME = new Date().getTime();
}));
});
/**
* メッセージ受信処理
**/
function onMessage(e) {
var r = JSON.parse(e.data);
if (r.cmd == "success") {
//マッチング成功
WS.close(CLOSE_SUCCESS);
} else if (r.cmd == "hc") {
} else {
WS.close();
}
}
function onOpen(event) {
//何かあれば適宜実装
}
function onError(event) {
//何かあれば適宜実装
}
function onClose(event) {
clearInterval(TIMER_HC);
clearInterval(TIMER_MATCHING);
if (event.code == CLOSE_SUCCESS) {
//マッチング成功
} else if (event.code == CLOSE_CANCEL) {
//マッチングをキャンセルしました。
} else if (event.code == CLOSE_TIMEOUT) {
//タイムアウト:相手が見つかりませんでした。
}
}
function __timerHealthCheck() {
WS.send(JSON.stringify({cmd: 'hc'}));
}
function __timerMatching() {
if (elapseSec > MATCHING_TIMEOUT_SEC) {
WS.close(CLOSE_TIMEOUT);
}
}
※各CloseCodeとヘルスチェックは必ず実装してください。
※あくまでサンプルです。このままでは動きません。
本サービスは、株式会社スタジオセムが運営しているサービスとなります。
https://studiosem.co.jp/