7

私はターン ベースの Android ゲームに取り組んでおり、サーバー側に Nodejs を選択しました。Android クライアント側から Nodejs サーバーに通信する方法を 2 週間ほど調べてきました。両者の間で通信する方法はありますか。

誰かがそのようなプロジェクトの経験があれば、親切に助けてください。

4

3 に答える 3

1

ゲームがクライアントとサーバー間の通信に必要なものに応じて、このようなものには多くのオプションがあります。たとえば、ここで「Android 用の TCP クライアント」を検索すると、次のような回答が表示されます。サーバーとクライアントの間で高速な更新が重要な場合、ゲームが途中でいくつかのパケットの損失に対処できる場合は、UDP が 1 つの選択肢になります。

TCP/UDP 以外にも、Android 用のWebSocketなどがあります。

于 2012-09-17T06:42:49.583 に答える
0

Android と nodejs の組み合わせは問題ありません。まず、ミドルウェアを定義する必要があります。ノード サーバーと Android クライアント間の通信には、REST-Webservices またはその他のテクノロジを使用できます。多くの標準 API とプロトコルがあります。通信には Websocket を使用します。WebSocket をサポートする Android / Node.js API は、次の場所にあります。

于 2012-09-17T08:50:59.323 に答える
0

Android でVolleyを使用して、jsonPOSTまたはGETリクエストを作成できます。

また、NODE JS の場合、ノードの組み込みhttpモジュールを使用して単純な HTTP サーバーを作成し、req オブジェクトからデータを受け取ることができます。

const http=require('http');
const stringDecoder=require('string_decoder').StringDecoder;

var httpServer=http.createServer(function(req,res){    
    unifinedServer(req,res);
});
//Just another method. 
var unifinedServer=function(req,res){

    var decoder=new stringDecoder('utf-8');
    var buffer='';
    //reading the post data. 
    req.on('data',function(data){
        buffer+=decoder.write(data);
    });
    //Reading of data is completed. 
    req.on('end',function(){
        buffer+=decoder.end(); 
    // Do what ever you want to do with the POST data. 
    });    
}
//The Server is listening on a specific port. 
httpServer.listen(7000,function(){
    console.log("Server is now listening on Port..."+7000);
});

Android コードの場合、ボレーでこれを行うことができます。

String url = "http://example.com";

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
        (Request.Method.POST, url, postJsonObject, new Response.Listener<JSONObject>() {

    @Override
    public void onResponse(JSONObject response) {
        mTextView.setText("Response: " + response.toString());
    }
}, new Response.ErrorListener() {

    @Override
    public void onErrorResponse(VolleyError error) {
        // TODO: Handle error

    }
});

// Access the RequestQueue through your singleton class.
MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest);
于 2018-10-14T17:43:01.073 に答える