第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年09月20日 更新
  1. Androidでおサイフケータイを使いたくない理由 初期化で消えないデータと売却時の落とし穴 (2026年09月19日)
  2. フォルダブル歴5年の筆者も驚いた「iPhone Duo」の完成度 ソフトウェアの力で再定義できるか (2026年09月19日)
  3. 「おサイフケータイ」のリセット方法を改めてチェックする(新しめの機種限定) (2026年09月07日)
  4. 出そろった「iPhone 18 Pro」の価格を4キャリアで比較 ソフトバンクが衝撃の安さ、楽天モバイルが異例の施策 (2026年09月13日)
  5. IIJに聞く“eSIMサポート”の裏側 「つながらない」「消した」なぜ起こる? 現場が打つ次の一手 (2026年09月18日)
  6. JR東日本「分かりにくい」新幹線券売機を改善へ なぜ、スマホではなく「駅での最短1分購入」を実現? (2026年07月04日)
  7. 「iPhone 17e」と「iPhone 17」どちらが買いか? 2機種を使い込んで分かった“スペック表にない違い” (2026年04月29日)
  8. iPhone 18 Proに保護フィルムを貼るとFace ID認証できない不具合 原因は“赤外線カメラの位置” (2026年09月19日)
  9. 「iPhone 18 Pro」は何が進化した? 「iPhone 17/17 Pro」とスペックを比較 全て20万円超えの価格が悩ましい (2026年09月10日)
  10. 【3COINS】6600円の「CDプレーヤー」 スマホやUSBメモリの音楽データも再生できる (2026年09月19日)
最新トピックスPR

過去記事カレンダー