第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年07月22日 更新
  1. ダイソーで330円の「人感・明暗センサーLEDバーライト(Type-C)」が意外と便利 1人暮らしの帰宅時や非常灯に便利  (2026年07月18日)
  2. Apple値上げ後も「2年実質24円」は消えず 4キャリアの「iPhone 17/17e」価格まとめ【7月21日版】 (2026年07月21日)
  3. なぜ「060」携帯番号は18カ月あっても延期になったのか? それでも「慌てる必要はない」現状 (2026年07月20日)
  4. ドコモの「arrows Alpha」、残価変更と割引終了で2年33円→5万9180円に (2026年07月21日)
  5. 専用充電器はもう不要? 中韓スマホから国内勢まで巻き込む「USB PPS」急速充電の新常識 (2026年07月14日)
  6. 「Pixel 11」は何が変わる? メモリ減少で100ドル前後の値上げも? 出そろったうわさを整理する (2026年07月19日)
  7. JR東日本「分かりにくい」新幹線券売機を改善へ なぜ、スマホではなく「駅での最短1分購入」を実現? (2026年07月04日)
  8. ショップとAIで差別化を図る「ドコモの銀行」――住信SBIネット銀行ユーザーからは戸惑いも (2026年07月19日)
  9. 携帯番号に「060」が採用されるワケ 「電話番号とは何か」を歴史とともに振り返る (2024年10月09日)
  10. iPhoneやApple Watch一斉値上げ 17無印は14万2800円に、17eは10万円超え 加速する中古スマホ特需 (2026年07月18日)
最新トピックスPR

過去記事カレンダー