Java / Android前端客户端和节点js后端服务器?

时间:2016-05-30 00:13:10

标签: javascript java android node.js

有可能这样做吗?或许,我应该问的问题,是否可行?

或者只是坚持使用Java / Android前端和Java后端服务器会更好吗?

节点js后端是否适用于多人游戏?或者也许仅适用于不需要太多的Web应用程序

如果它(java-nodejs)对于多人游戏来说是实用的,那么如何让java客户端能够与节点js服务器进行通信呢?

2 个答案:

答案 0 :(得分:0)

如果您正在构建API,则不必担心编写它的语言,与其通信的方式将保持不变(UDP / HTTP / WS请求)。 然而,你正在创建一个多人游戏,所以你需要在后端获得良好的性能。

NodeJS很好,非常好! Erlang更好;)

答案 1 :(得分:0)

是的,这是可行的。 Node在处理请求方面非常高效且快速。由于它适用于基于事件的模型,因此非常适合服务器端。 如果您使用Android和NodeJ作为服务器端,那么我可以提供帮助:

您可以在Android中使用Volley发出json POSTGET请求。

对于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);