2013-07-23 4 views
1

긴 폴링을 위해 서버 측 코드를 작성했습니다. 나는 자바로 클라이언트 프로그램을 작성하고 싶다. 따라서 긴 폴링 당 클라이언트는 서버에 의해 도움이되는 요청을 보내고 이벤트가 발생할 때 서버가 요청에 응답 한 다음 클라이언트가 새 요청을 보냅니다.Java에서 긴 폴링

그래서 내가 직면하고있는 문제는 자바로 작성된 클라이언트 측과 관련이 있습니다. 요청을 보낸 후 서버가 응답 한 경우 클라이언트 측에서 계속 확인하는 방법 어떤 간격으로 서버에 계속 요청을 보내야합니까? 나는 완전히 혼란 스럽다. 나는 웹 기술의 초보자이다. 나는 이것에 대해 인터넷 검색을 시도했지만 모든 예제는 클라이언트 쪽 자바 스크립트 또는 JSP되고 기반으로합니다. 누구든지 클라이언트 측이 Java HTTp 응용 프로그램 인 적절한 자습서에 대한 링크를 제공하거나이 예를 제공 할 수 있습니까 (예 : 긴 폴링을 달성 할 수 있습니까).

+0

본 적이 있습니까? http://stackoverflow.com/questions/3249679/best-choice-for-long-polling-comet-in-java-or-c?answertab=votes#tab-top – CBIII

+0

의심의 여지가 없습니다. 도움을 주셔서 감사합니다 @ ClydeByrdIII –

답변

4

HTTPURLConnection의 getInputStream을 호출하면 차단 스트림이 반환됩니다. 이 스트림에서 읽기를 호출하면 서버에서 데이터를 사용할 수있을 때까지 스레드가 차단되므로 데이터를 폴링하지 않아도됩니다.

별도의 스레드에서 읽기를 호출하고 연결을 닫지 않고 범위에 HTTPURLConnection을 유지하십시오. 사용할 수있는 데이터를 다시 가져와야합니다. 서버에서 200K를 받으면 같은 연결에서 다른 요청을 다시 보내서 열어 두십시오. (요청 제한 시간을 구현하지 않은 경우입니다.)

+0

이것은 이것을 지 웁니다 :) .. 감사합니다! –

+0

괜찮습니다. 동일한 연결에서 요청을 재전송하는 방법 : | . 나는 이것을 오랫동안 해왔다. –

+0

응답을 보내면 서버가 연결을 닫지 않았 으면 좋겠습니까? 그럴 경우 U는 다시 연결해야합니다. 당신이 얻고있는 예외는 무엇입니까? – Raji