検索
連載

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

今回も引き続き、第5回までに作成した900i専用のトレーディングカードゲームを、ネットワーク対戦に対応させるために、アプリとサーバの間のインタフェースの設計および、実装を行う。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

ゲーム終了

アプリから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.

ページトップに戻る