(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)と同じ動作を確認できたので、問題なさそうです。
よーし、これをもとにしてアプリ作るぞー。