AndroidアプリでもUnityで実装したいので、こんな風に項目が増えました↓
(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)と連携する
================================================================
前回の記事で使ったさくらVPSの環境をそのまま使います。
違うのは、
・「server_http.js」というファイルを新しく作って、これを使ったこと。
・Unity側でスクリプト(Javascript)を用意したこと
の2点だけです。
(1) Unity側で新しくスクリプト(Javascript)を用意する
↓のサイトを参考にしました
unityとPHPのやり取り POSTを使ったデータ送信
http://gpfuntou.seesaa.net/article/240557931.html
※スクリプトの適用手順は割愛しています
※[提供されたIPアドレス]は適宜書換えてください
-------------------------------------
#pragma strict
function Start () {
// 送信先のURLを指定
var url = "http://[提供されたIPアドレス]:8124/";
//指定urlにデータを送信
var wwwForm:WWWForm = new WWWForm();
wwwForm.AddField("score", "10");
// POSTで送信
var gettext : WWW = new WWW(url, wwwForm);
// 取得するまで待つ
yield gettext;
// 200が返れば成功
Debug.Log(gettext.text);
}
-------------------------------------
(2) node.js側で新しくファイル(server_http.js)を用意する
UnityエディタからPOSTを受け取ったら、200を返す簡単な処理を行います。
ブラウザで見ようとGETで通信すると、Bad Request(400)を返すようにしました。
※[提供されたIPアドレス]は適宜書換えてください
-------------------------------------
// サーバのアドレスとポート
var HOSTNAME = '[提供されたIPアドレス]';
var PORT = 8124;
var express = require('express'),
ejs = require('ejs');
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) {
// POSTパラメーターを取得
console.log(req.body.score);
// OK(200)を返す
res.end('200');
});
app.listen(PORT, HOSTNAME);
-------------------------------------
(3)動作確認
さくらVPSっで「server_http.js」を実行します。
$ node server_http.js
Unity側で再生ボタンを押します。
さくらVPS側コマンドライン → 10
Unity側コンソール画面 → 200
が表示されたら成功です。
ブラウザで見ると↓

よーし、次はMySQLとの連携だー。