Java 最快的android服务器通信
我正在创建一个android应用程序,以便尽可能快地从服务器获取信息。 我对安全性或保持电池寿命不感兴趣。消息很可能很小,但很快就会出现(每隔几秒钟)。通信将主要是单向的,但是应用程序与服务器通信的能力将是一个额外的好处 我一直在关注谷歌云消息(GCM),但关于这一速度的报道好坏参半 这与HTTP/JSON连接的速度相比如何?或者设置服务器连接并将消息推送到的套接字 还有其他我没有考虑过的选择吗 编辑:Java 最快的android服务器通信,java,android,protocols,google-cloud-messaging,Java,Android,Protocols,Google Cloud Messaging,我正在创建一个android应用程序,以便尽可能快地从服务器获取信息。 我对安全性或保持电池寿命不感兴趣。消息很可能很小,但很快就会出现(每隔几秒钟)。通信将主要是单向的,但是应用程序与服务器通信的能力将是一个额外的好处 我一直在关注谷歌云消息(GCM),但关于这一速度的报道好坏参半 这与HTTP/JSON连接的速度相比如何?或者设置服务器连接并将消息推送到的套接字 还有其他我没有考虑过的选择吗 编辑: 这将完全通过WiFi运行,它提供与服务器的持续连接,因此速度非常快(每次连接都不会出现时间延
这将完全通过WiFi运行,它提供与服务器的持续连接,因此速度非常快(每次连接都不会出现时间延迟) 您可以通过使用名为 典型的实现如下所示:
@Override
protected String doInBackground(String... arg0) {
String result= TIME_OUT; //public static final String TIME_OUT = time_out_error"
while(result.equals(TIME_OUT))
result = getServerInformation();
return result;
}
public String getServerInformation(){
String result = null;
DefaultHttpClient def = new DefaultHttpClient();
HttpParams httpParams = def.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, CONNECTION_TIMEOUT);
ConnManagerParams.setTimeout(httpParams, CONNECTION_TIMEOUT);
HttpPost httpPost = new HttpPost(mPushURL);
httpPost.addHeader("Accept", "application/json");
try {
Log.i(TAG, "Executing POST(PUSH) request " + httpPost.getRequestLine());
HttpResponse httpResponse = def.execute(httpPost);
Log.i(TAG, result);
Log.i(TAG, String.valueOf(httpResponse.getProtocolVersion()));
Log.i(TAG, String.valueOf(httpResponse.getEntity().getContent())); //For testing purposes
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//HERE YOU SHOULD TURN result = TIME_OUT or whatever you want
return result;
}
您应该尝试web套接字,而不是简单的HTTP web服务调用。只要服务器上有东西要共享,web套接字就会与服务器建立持久连接。服务器应该广播它,以便客户端可以在已经建立的连接上接收该数据。