2011-12-12 5 views
4

CometD를 처음 사용하는 경우 응답/요청 모델의 경우 서비스 채널 모델을 구현하는 간단한 예제가 있습니까? 필자는 cometd.org를 보았지만 어떤 채널에 게시해도 응답을 보내는 방법에 대한 예는 없습니다. cometD에서 구현

이게

alert("channel published1"); 
    dojox.cometd.publish('/service/getlist'); 
    alert("channel published"); 
    dojox.cometd.subscribe('/service/getlist', function(message) { 
     alert(message); 
    }); 

클라이언트 측에게 인 서버 측 "ConfigurationServlet"http://cometd.org

bayeux.createIfAbsent("/service/getlist", new ConfigurableServerChannel.Initializer() { 

     //new EchoService(bayeux); 
     @Override 
     public void configureChannel(ConfigurableServerChannel channel) { 
      /*channel.setPersistent(true); 
      GetListChannelListener channelListner = new GetOrderListChannelListener(); 
      channel.addListener(channelListner);*/ 
      new EchoService(bayeux); 
     } 
    }); 

EchoService

public class EchoService extends AbstractService{ 
public EchoService(BayeuxServer bayeuxServer)         
{ 
    super(bayeuxServer, "getlist");            
    addService("/service/getlist", "processEcho");          
} 

public void processEcho(ServerSession remote,Map<String, Object> data) 
{  
    try{ 
    System.out.println("Start Process Echo"); 
    getBayeux().getChannel("/service/getlist").publish(getServerSession(), "Hello", null); 
    System.out.println("End Process Echo"); 
    }catch(Exception exp){ 
     exp.printStackTrace(); 
    } 
    //remote.deliver(getServerSession(), "/service/getlist", data, null);     
} 

}

답변

4

다시 필요한 모든 것입니다. 당신이 특히 읽을 필요가 매우 간단한 예제 (자바 스크립트 클라이언트와 웹 응용 프로그램)을 구축하기 위해

:

  • This를 서버 측 클라이언트 측
  • This을 위해 (구성)
  • This은 서버 측 (코드)입니다. 이 메뉴에서 첫 번째 및 세 번째 글 머리 기호 인 입력 된 메시지를 표시하는 코드에 대한 상속 된 서비스 및 구성 서블릿을 통한 Bayeux Server 설치를위한 서버 서비스 통합을 사용하여 시작할 수 있습니다.

내가 링크 한 페이지에는 필요한 코드가 모두 있습니다. 복사하여 붙여 넣기 만하면됩니다. 더 구체적인 질문으로 다시 돌아 오십시오. 코드보고 후

편집


, 난 당신이 다음과 같이 processEcho 방법을 수정해야하는 서비스 구성은 here에서와 EchoService 클래스 ConfigurationServlet 클래스의 코드를 복사해야 볼 :

remote.deliver(getServerSession(), "/echo", data, null); 

로 정의되는 주도의 HashMap data으로 here (제 1 예)를 설명한다. (이 중 하나를 당신의 방식으로 작동하는지 확실하지 않다) 클라이언트 측에

, 나는 귀하의 요청을 게시하기 전에 채널에 귀하의 코멘트에 대한

+0

감사를 구독 할 것입니다. 공부할 때 문제가 발생합니다. 즉, 게시하고 자바 스크립트로 구독하고 구독하는 경우입니다. 게시하는 동안 서블릿을 호출합니다. 지금 나는 약간의 메시지를 클라이언트 (자바 스크립트) 서블릿에서 보내는 방법에 여기 조금 혼란스러워하고있다. 나는 예제를 보았지만, 여기에 요점이 없습니다. –

+0

지금까지 작성한 코드를 추가하여 질문을 업데이트하십시오. – perissf

+0

perissf 내 질문을 업데이트했습니다. 한번 봐주세요. Thnx –