结合java和nodejs为Android应用程序

时间:2012-09-17 05:50:23

标签: java android node.js multiplayer

我正在开发基于回合制的Android游戏,我选择了Nodejs作为服务器端。我已经探索了大约两周如何从Android客户端到Nodejs服务器进行通信。有没有办法在两者之间进行沟通。

如果有任何人有这样一个项目的经验,请帮助我。

3 个答案:

答案 0 :(得分:1)

根据您的游戏在客户端和服务器之间进行通信所需的内容,有很多选项可供选择。例如,查找"用于android的TCP客户端"这里显示了像this这样的答案。如果服务器和客户端之间的快速更新很重要,那么UDP是一种选择,如果您的游戏可以应对中间某些数据包的丢失。

除了TCP / UDP,您还可以使用WebSockets for Android。

答案 1 :(得分:0)

结合Android& nodejs没问题。首先,您必须定义middelware。您可以使用REST-Webservices或任何其他技术进行节点服务器和Android客户端之间的通信。有许多标准的API和协议。我会使用Websocket进行通信。您可以在此处找到支持WebSocket的Android / Node.js API:

答案 2 :(得分:0)

您可以在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);