2012-07-06 3 views
0

를 구현하는내가이 Restlet 프레임 구조를 가지고 긴 폴링

server = new Server(new Context(), config.getServerProtocol(), config 
          .getServerPort()); 

나는 응용 프로그램 확장하는 새 MyApp를 클래스 실체화 Afer 즉 :

server.setNext(app); 
server.start(); 
:

그리고

app = new org.myproject.restlet.server.MyApp(
    config, server.getContext()); 
app.start(); 
서버를 시작합니다

구성 요소가 없으므로 MyApp가 라우터에 배포하고 요청을 처리합니다. 이 시점에서 누군가 의견을 제시하면 감사 할 것입니다. 나는 Restlet 2.0.14 JSE를 사용하고 있으며, Jetty Jars를 링크하여 내 http 서버처럼 사용한다. 내 서버는 정상적으로 작동하며 Ajax 호출을 수행하는 자바 스크립트 클라이언트가 있습니다. 하지만 난 서버에서 긴 - 폴링 구현해야합니다 (나는 스트림을 버리고 몇 가지 이유로 모드를 밀어). 이 방법을 구현하는 방법에 대해 읽고 있는데 첫 번째 방법은 (추한 방법으로) 다음과 같을 수 있습니다. - 서버에서 스레드를 잠자 게하고 서버에 무언가가있을 때 다시 시작합니다. 이 방법은 확장 가능하지 않으므로 버려집니다 (here are a post about it). - 두 번째 방법은 버전 7의 부두 연속 API를 사용할 수 있습니다.이 link은 부두 혜성 API를 사용하여 요청을 일시 중지하는 방법을 볼 수 있지만이 another link에 명시된대로 내 재주문 구현에 적용하는 방법을 알지 못합니다. 내가 볼 수 있습니다 :

Continuation continuation = ContinuationSupport.getContinuation(request); 
continuation.suspend(); 

하지만 getContinuation 메서드는 ServletRequest 개체를받습니다. 하지만 내 요청은 ServletRequest가 아닙니다. 누구든지 restlet에서 ServletRequest를 변환하거나 사용하는 방법을 알고 있습니까? 아마 나는 서버 프로그래밍에 대한 모든 개념을 가지고 있지 않을 것이다.

+1

이 시점에서 서블릿 3.0은 restlet 서블릿 3.0 비동기 작업을 지원하고 jetty8에 배포하는 서블릿 –

답변

0

Restlet에서 설명하는 부두가있는 부두 연속을 사용할 수 없습니다. 긴 폴링을 구현하려면 Restlet을 잊어 버리고 Java 동시성으로 구현하십시오 : wait() & notify() 그리고 모든 것이 실행 중입니다 ok