편안한 웹 서비스에서 데이터를 가져 오는 Android 애플리케이션을 개발 중입니다."Keepalive"연결을 사용하여 편안한 웹 서비스에서 데이터 폴링
나는 이것을 구현하는 가장 좋은 방법을 생각하고 있었고, 코드는 작동하지만 최적화 할 수 있다고 확신합니다. 여기에 내 현재 코드 상태 : 나는 스케줄러를 사용하여 서비스에서 restResource를 호출하고있다. 잘못된 부분은 모든 요청에 대해 연결을 열고 닫는 것입니다.
httpResponse = client.execute(request);
responseCode = httpResponse.getStatusLine().getStatusCode();
message = httpResponse.getStatusLine().getReasonPhrase();
HttpEntity entity = httpResponse.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
response = convertStreamToString(instream);
instream.close();
}
어떻게 응답과 함께 반환 된 킵 얼라이브 헤더의 사용을 만들 수 (그것이 하늘의 배열을 돌려줍니다 빈 때 나머지 자원은 실시간 데이터를 유지 (나는) 그것을 모든 초를 가져가)?
감사합니다 @ CodeChimp, 내가 무기한으로 보관하고 싶다고 말하면 어떻게 반복해서 응답을 읽을 수 있습니까? 콘텐츠가 처음으로 소비 된 것을 기억합니다. 연결을 유지하고 주기적으로 응답을 여러 번 읽으려면 java에서 적절한 방법은 무엇입니까? – john
당신은 OutputStream을 잡고 그냥 닫지 않을 것이라고 생각합니다. 열려있는 한 연결은 열려있을 것입니다. 명심하십시오. HttpServletResponse에서 얻은 OutputStream은 궁극적으로 Socket에 연결되므로 소켓을 닫으면 소켓을 닫습니다. 이것은 양측 모두에 해당됩니다. – CodeChimp