第7回 ネットワークiアプリのためのサーバサイド活用(2):90Xi専用ゲームiアプリ開発講座(3/4 ページ)
今回も引き続き、第5回までに作成した900i専用のトレーディングカードゲームを、ネットワーク対戦に対応させるために、アプリとサーバの間のインタフェースの設計および、実装を行う。
ゲーム終了
アプリからPOSTメソッドで送られる値
UTN=ser********* | 端末ID |
ACTION=1 | 状態フラグ(ゲーム終了) |
RES=xx | 対戦結果フラグ |
対戦が終了すると、アプリは対戦結果をサーバに通知する。対戦に勝利した側のみが、サーバに結果を通知することができる。アプリからの通信を受けて、引分け時は双方がサーバにデータを通知することとなるが、先にデータを送ったほうの更新のみが反映され、後から送ったほうは無視する。システムエラーが発生しない限り、成功の値が戻される。アプリは値に従った表示を行う。
成功時…1
失敗時…0
アプリ側の重要な実装
設計に関しての記憶が新しいうちに、アプリの実装も行っておこう。
アプリからサーバサイドのシステムにデータを渡す場合には、POSTメソッドを用いてデータを送る。接続モードも読み書きが可能なモードにしておく。また、送信時のContent-Typeも、忘れずにapplication/x-www-form-urlencodedを指定しておこう。
以下に、今回用意した接続と送信、受信のメソッドを示す。
接続メソッドでは、スクリプトとの通信に、適切なリクエストを設定したHttpConnectionを返す。返されたオブジェクトを用いて接続と切断だけを行えばよい。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
送信メソッドでは、引数に指定した文字列をスクリプトに送信する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
受信メソッドでは、受信したデータをすべて読み取り、使用しやすいように、String型にして返している。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
対戦相手を探すとき(マッチング時)に、サーバから送られてきたデータは不正なデータであれば"0"から始まっているので、その場合は例外を投げている。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
正常なデータであれば、"1/"から始まっているので、3文字目以降から、次の"/"までを取得する。以下は敵プレイヤーの名前を取得し、URLデコードを行っている例である。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright © ITmedia, Inc. All Rights Reserved.