Node.JS+MySQLでランキング表示用サーバーを作るまで(2)

こんばんみ!洋梨🍐です。今回は前回の続きです。

データーベースに情報を登録する

前回は情報を登録済みの情報を取得するだけだったので、今回はUnityからサーバーにスコア(情報)を登録できるようにしていきたいと思います。

リクエスト構造(JSON)

今回サーバーに送信するリクエスト形式は次のようにしました。

{ id , action, name , score }
// id : ユーザー識別用ID
// action : 操作内容(例:追加 = ADD)
// name : ユーザー名
// score : スコア

リクエストを処理する(サーバー側)

まずはNode.jsでリクエストを処理するためのプログラムを作成します。

今回は追加(ADD)リクエストが来たらとりあえず何も考えずデーターベースに登録するとします。なお、リクエスト先は /post とします。

app.post("/Post",function(req,res,nex){
    let b = req.body;
    console.log("POST Receive. ["+b+"]");
    database_action(res,b.id,b.action,b.name,b.score);
})

function database_action(res,id,action,name,score){
    switch(action){
        case "ADD":
        console.log("Run Query : INSERT INTO RANK VALUES("+id+","+name+","+score+",now())");
        con.query("INSERT INTO RANK VALUES('"+id+"','"+name+"',"+score+",now())",function(e,r){
            if(e) response(res,"ERROR",null);
            else response(res,"OK",null);
        })
        break;
    }
}

リクエストを送信する(Unity)

テストデーターとして

{ id:”a003” , action:”ADD” , name:”MyUser” , score:300 }

を送信するとします。

    public void OnPushPost()
    {
        var send = "{ \"id\":\"a003\" , \"action\" : \"ADD\" ,\"name\":\"MyUser\" ,\"score\": 300 }";
        var bytes = System.Text.Encoding.UTF8.GetBytes(send);

        var req = WebRequest.Create("http://localhost:3000/Post");
        req.Method = "POST";
        req.ContentType = "application/json; charset=utf-8";
        req.ContentLength = bytes.Length;
        req.Timeout = 3000;

        var reqStm = req.GetRequestStream();
        reqStm.Write(bytes, 0, bytes.Length);

        var res = req.GetResponse();
        using (Stream stm = res.GetResponseStream())
        using (StreamReader str = new StreamReader(stm))
        {
            string json = str.ReadToEnd();
            Debug.Log(json);
        }

        Debug.Log("Send POST:" + bytes.Length);

        reqStm.Close();
        res.Close();
    }

実行してみるとデーターベースに登録されているのがわかると思います。

リクエスト送信前→送信後で追加されているのがわかる
送信後 /Get でリストを取得すると確かに登録されている

これでUnityからサーバーに登録もできるようになり、ランキング表示機能として使えるようになりました👼


ここまで読んでくれてありがとうございました!!

ホームページでは他にも

・様々な記事や作った作品および過程
・ソースコード、素材ファイル
・あらゆる”モノ”の作り方

などなど随時、記事や作品を新規公開・更新していますので是非見ていってくださいね!見ていただけると本当に嬉しいです!