2012年04月09日

[Web+Unity] node.jsを使ってみる(Unity⇔さくらVPS編) その2

[Web+Unity] node.jsを使ってみる(Unity⇔さくらVPS編) その1」の続きです。

(1) ローカル環境でnode.jsを動かす
(2) さくらVPSでnode.jsを動かす
(3) AndroidアプリとさくらVPSのnode.jsを連携させる
(3-1) UnityエディタからPOSTしてnode.jsから値を返す
(3-2) UnityエディタからPOSTしてデータベース(MySQL)と連携する ← 今回はこれ
(3-3) Android端末からPOSTしてデータベース(MySQL)と連携する ← 今回はこれ

================================================================
(1) Unity側の変更点
前回の記事で使ったスクリプトの一部を変更します。
POSTで送信するパラメーター名を変えました。

wwwForm.AddField("score", "10");

wwwForm.AddField("url", "kitakore");


(2) node.js側の変更点
POSTで「url」というパラメーターを受け取ったときだけ、データベースに挿入するように変更を加えました。
server_http.js
------------------------------------------------------
// サーバのアドレスとポート
var HOSTNAME = '[提供されたIPアドレス]';
var PORT = 8124;

// MySQL データベース名、ユーザー名、パスワード
var DBNAME = 'nodejs_url_shortener';
var DBUSER = 'test';
var DBPASSWD = '[パスワード]';

var express = require('express'),
ejs = require('ejs'),
Client = require('mysql').Client,
mysql = require('mysql');

var app = express.createServer();
app.use(express.bodyParser());
app.register('.ejs', ejs);

// ルート GET
app.get('/', function(req, res) {
// Bad Request(400)を返す
res.end('Bad Request(400)');
});

// ルート POST
app.post('/', function(req, res) {
// URLが無かったら終了
if (!req.body.url) {
console.log("url not found");
// Bad Request(400)を返す
res.end('400');
return;
}
// データベースに登録
var client = mysql.createClient({
database: DBNAME,
user: DBUSER,
password: DBPASSWD
});
client.query(
'INSERT INTO shorten_urls (long_url) VALUES (?)',
[req.body.url],
function(err, results) {
// キー重複
if (err && err.number != Client.ERROR_DUP_ENTRY) {
console.log("DB error : ER_DUP_ENTRY");
// Bad Request(400)を返す
res.end('400');
}
// インサート成功
if (!err) {
console.log("INSERT success");
// OK(200)を返す
res.end('200');
}
// インサート失敗時はBad Request(400)を返す
res.end('400');
}
);
});
app.listen(PORT, HOSTNAME);
------------------------------------------------------

(3) 動作の確認
さくらVPSっで「server_http.js」を実行します。
$ node server_http.js

Unity側で再生ボタンを押します。

さくらVPS側コマンドライン → INSERT success
Unity側コンソール画面 → 200

が表示されたら成功です。
データベースの中身も確認してみました。
mysql> SELECT * FROM shorten_urls;
+----+-----------+
| id | long_url |
+----+-----------+
| 12 | kitakore | ←成功
+----+-----------+

(4) Android端末で動作確認
UnityのこのプロジェクトをAndroid端末に出力してみました。
(3)と同じ動作を確認できたので、問題なさそうです。

よーし、これをもとにしてアプリ作るぞー。
posted by be-style at 04:06| Comment(0) | Unity
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]