Unity実装04 ログイン処理を実装、前にバージョンチェック処理
いつもありがとうございます。
スキマ時間開発のお時間です。よろしくお願いします。
前回までのあらすじ
ログイン画面を作ったよ!
クライアント側のDBも準備できたよ!
ということで、次はログイン&初回ユーザ登録処理!
の前に、汎用のクライアント・サーバー間通信の処理を実装していきます。
いわゆる「臨時メンテナンス」の入り口を作成します。
今回のバージョン管理は、
[テーブルバージョン].[ゲームバージョン].[マスタバージョン]
です。
クライアントが持っているバージョン情報を、通信の度に、サーバーの情報と突合して、食い違っていたら最新化するぞ、と。
php側をサクッと書いてみた。
<?php
require_once 'connectdb.php';
// URL引数からバージョンを取得
if(isset($_GET['ver'])) {
$version = $_GET['ver'];
}
// SQLステートメントを実行し、結果を変数に格納
$sql = "SELECT * FROM msts_server_statsu ";
$stmt = $dbh->query($sql);
// 枠を定義
$server_statsu = "";
$table_version = "";
$game_version = "";
$master_version = "";
// foreach文で配列の中身を一行ずつ出力
foreach ($stmt as $row) {
$server_statsu = $row[server_statsu];
$table_version = $row[table_version];
$game_version = $row[game_version];
$master_version = $row[master_version];
}
// サーバが稼働していない場合、エラー
if($server_statsu <> 'run') {
echo '101'; // ERROR_SERVER_NOT_RUNNIG
echo '<br>';
exit;
}
// バージョン情報を展開
$version_pieces = explode(".", $version);
if (count($version_pieces) <> "3" ) {
// バージョン情報が不正の場合
echo '102'; // ERROR_VERSION_STRING_DISCORD
echo '<br>';
exit;
}
// バージョン情報を照合
if($version_pieces[0] <> $table_version) {
// テーブルバージョン不一致の場合
echo '501'; // TABLE_VERSION_DISCORD
echo '<br>';
exit;
}
if($version_pieces[1] <> $game_version) {
// ゲームバージョン不一致の場合
echo '502'; // GAME_VERSION_DISCORD
echo '<br>';
exit;
}
if($version_pieces[2] <> $master_version) {
// マスタバージョン不一致の場合
echo '503'; // MASTER_VERSION_DISCORD
echo '<br>';
exit;
}
?>
どシンプル。
でC#側は、上記のエラーコードが返ってきたら、対応する処理をする、と。
テーブルバージョン不一致の場合は、DBのドロップクリエイト→全データリロード。
ゲームバージョン不一致の場合は、ストアに飛ばす。
マスタバージョン不一致の場合は、マスタデータのリロード。
軽く書いているケド、ストアに飛ばすってどー書くんでしょうね。
アルファテストの審査通してから考えよう。。。
次回は今度こそログイン処理かしら。
最後まで読んでいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?