(Microsoft AUTD ActiveSync 기반의 ->http://technet.microsoft.com/en-us/library/aa997252.aspx) 내 안드로이드 응용 프로그램에서 긴 폴링 푸시 서비스를 구현하려고합니다.안드로이드 https 긴 폴링 : 폴링 간격이 70 초보다 길면 응답을받지 못합니다.
Tomcat 7.0에서 실행되는 Servlets 3.0이있는 서버 부분을 이미 실현했습니다. 내 AsyncServlets CURL 함께 테스트 한 모든 작동합니다.
내 AsyncServlet 테스트를 어떻게:
HttpParams httpParams = mDefaultHttpClient.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpParams, mHeartbeat + TIMEOUT_TOLERANCE);
mDefaultHttpClient.setParams(httpParams);
HttpGet httpGet = new HttpGet(mPushURL);
httpGet.addHeader("Accept", "application/json");
try {
Log.i(TAG, "Executing GET(PUSH) request " + httpGet.getRequestLine());
HttpResponse httpResponse = mDefaultHttpClient.execute(httpGet);
Log.i(TAG, httpResponse.getStatusLine().toString());
Log.i(TAG, convertInputStream(httpResponse.getEntity().getContent())); //For testing purposes
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
: 다음 코드 내 안드로이드 응용 프로그램에
curl "https://webservice.mydomain.net/push?id=1&heartbeat=180000" --insecure --user user:password -D -
서버 응답 3 분 후 (하트 비트 간격)
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 01:00:00 CET
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 0
Date: Sat, 15 Jan 2011 23:38:57 GMT
내가 사용을 몇 가지 검사를 했어. 하트 비트 간격을 70 초로하면 응답을받습니다. 70 초 초과의 하트 비트 간격을 사용하면 지정된 하트 비트 간격 이후에 HTTP 200 OK 응답 대신 SocketTimeoutException이 수신됩니다. (명확히하기 위해 : 내 SocketTimeout (SoTimeout)이 올바르게 작동하지만, 연결이 끊어져 버린 것 같습니다. 이유는 모르겠습니다.)
모든 응답에 감사드립니다. 추가로