MySQL・ログイン@HIROBA

こんにちはー

今日は、サーバーサイドプログラムですー

とりあえず、キャラ動かすのに座標を取得しなくては。

形式はAs3<=>PHPなので、ライブラリあるしJSONでいこうかな。

#yum -y install php-pecl\*
#yum -y install php-devel
#pecl install json

システムが生成したファイルにjson.soが生成されるので、それを~/modulesにコピー。
php.iniで

extension=json.so

書いてhttpd再起動っと。おk

PHPテストコード

$obj = array(
array('id' => 0, 'name' => 'aaa', array('hogehoge' => 'hogehogeAA')),
array('id' => 1, 'name' => 'BBB', array('hogehoge' => 'hogehogeBB')),
array('id' => 2, 'name' => 'ccc', array('hogehoge' => 'hogehogeCC'))
);
$json = json_encode($obj);
echo $json;

あとは、AS3側でJSONライブラリ(SWC)設定して。できました。


HIROBAの流れですが、
1、ログイン要求
2、識別ID発行
3、キャラクター座標通知
4、キー入力通知
となっています。

とりあえず、
1、ログイン要求をつくりましょう。

全体的なクラス図は以下のとおりっ

解像度?のせいで横になってしまう・・・
見にくい点はごめんなさい。


ログインは、DBのキャラクター制御テーブルにキャラ座標を追加することで実装。
クライアントは全てのキャラクターの座標を取ってすべて表示するしくみです。


んー今日はですね、MySQLとの接続クラス、ログイン機能を実装しますた。
一応、ログイン機能でIDを発行しているのですが、割り込みがあるといけないので、排他制御しています。手順は下記


ロック

トランザクション開始

SQL(いくつか)

トランザクション終了

ロック解除


一応、トランザクションが必要なSQL数ではないですが、正確にID登録・取得できない場合を考慮して入れてあります。
デッドロックか・・・また、考えよう。