第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.

最新トピックスPR

過去記事カレンダー

2024年