第7回 ネットワークiアプリのためのサーバサイド活用(2)90Xi専用ゲームiアプリ開発講座(2/4 ページ)

» 2004年11月29日 20時38分 公開
[澤橋辰典・武上将樹,ITmedia]

対戦相手を検索する

 対戦相手検索の仕様は次の通りとなる。

アプリからPOSTメソッドで送られる値

UTN=ser*********端末ID
ACTION=0状態フラグ(検索)

 まずアプリから、HTTPのPOSTメソッドで、UTNとACTIONという2つのパラメータが送付される。

 サーバはUTNをユーザーIDに変換して保持する。ACTIONの値が"0"であった場合、サーバはDBのWAITINGテーブルから、今対戦を待っているユーザーがいるかを検索する。待機中ユーザーがいれば、DUELテーブルを初期設定して、対戦IDを発行し、WAITINGテーブル内の対戦相手情報の対戦IDの項目を埋める。対戦IDを仲立ちさせることによって、互いに誰が対戦相手なのかを知らせるのだ。対戦相手のこれまでの戦績を取得して、アプリに返す。

 待機中ユーザーがいなければ、10秒間、WAITINGテーブルの対戦ID情報が変更されるまで待ち続ける。その間に誰かに見つけられたら、DUELテーブルの初期設定と、対戦相手の戦績の取得を行い、アプリに返して終了する。見つけられなければ、エラーとしてアプリに伝える。

期待される返却値

成功時…1/対戦相手の名前/相手の勝数/引分数/負数

失敗時…0

データはURLエンコードした上で、"/"で区切って渡している。

対戦

アプリからPOSTメソッドで送られる値

UTN=ser*********端末ID
ACTION=1状態フラグ(対戦)
CARD=xxカードNO.

 アプリからは、端末IDやフラグに併せ、カードの値も送られてくるので、サーバはそれをDUELテーブルに格納する。そのときに現在のターンをDBに反映させておく。ターン番号と対戦IDをキーとして、相手のカード値を検索し、存在すればアプリに返却する。

 相手のカード値が存在しない場合、待機状態に入る。待機状態に入って10秒たっても、相手のカード値が更新されない場合、タイムアウトとなり相手のカード値を"-1"としてアプリに返す。この場合、無条件で勝利となる。

期待される返却値

成功時1/相手のカードの値
失敗時0

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2026年06月02日 更新
  1. Switch 2の「箱の中にHDMIケーブルが入っていなかった」との問い合わせ、任天堂に寄せられる (2026年05月29日)
  2. 「Rakuten Linkで着信拒否できない件」を楽天モバイルはどう考えているのか 置き去りにされた基本機能の行方 (2026年05月29日)
  3. NTTドコモが5G SAを無料キャンペーンから「無料提供」に改訂――Opensignalで評価を上げることはできるのか (2026年05月31日)
  4. ソフトバンクが「今回もやる」とGalaxy S26を月額1円で販売――販売方法を早急に見直さないと撤退を迫られるメーカーも (2026年03月08日)
  5. 楽天モバイル販売ランキング:「MNPで一括1円」のエントリー4機種が3〜6位に並ぶ【2026年4月】 (2026年05月31日)
  6. d払い、dポイントのキャンペーンまとめ【6月1日最新版】 1万〜3万ポイントの高額還元がめじろ押し (2026年06月01日)
  7. 「Pokemon GO Fest 2026:東京」熱戦レポート:1000人レイドに大興奮、「メガミュウツーX・Y」討伐に驚きの仕掛けも (2026年06月01日)
  8. LINEで「最終学歴」や「子供の有無」が筒抜け? 広告設定で物議も「トークや個人情報は参照していない」 (2026年05月30日)
  9. ダイソーで770円の「超速USB充電器」が外出先で意外と便利 USB PD+QuickCharge 3.0ポート搭載で古めの急速充電デバイスもOK (2026年05月30日)
  10. Xiaomiが異例の早さでハイエンドスマホを投入する理由 今秋に「ワクワクする」機種投入も? (2026年05月30日)
最新トピックスPR

過去記事カレンダー