2014-01-21 3 views
1


누구나 <p:socket/> 클라이언트 위젯이 포함 된 API 링크를 알려줄 수 있습니까?Primefaces Push - <p:socket/> 클라이언트 위젯의 메소드는 무엇입니까?

난 단지 requestContext.execute("subscriber.connect('/" + username + "')"); 다른 방법은 무엇인가.에 connect 방법을 볼 수 push showcase 겪고? 연결 해제 방법이 있습니까?

또한 각 사용자별로 별도의 채널을 만드는 방법 (채팅 응용 프로그램의 경우). 나는이 <p:socket onMessage="handleMessage" channel="/chat/#{userSession.userId}" autoConnect="false" widgetVar="subscriber"/> 트릭을 할 것이지만 apparantly 나를 위해 atleast하지 않습니다. Chrome 개발자 콘솔을 보면 페이지가 새로 고침 될 때마다 채널 이름 (/ chat/userid/userid ...)이 추가된다는 것을 알 수 있습니다.

모든 포인터는 높이 평가됩니다. !!!

답변

2

제가 직면 한 문제에 대한 답을 얻었습니다.

  1. 푸시 위젯의 메소드의 경우, push.js가 검색 할 파일입니다.
  2. 첨부 된 문제는

    requestContext.execute("subscriber.connect('/" + username + "')");

    여러 시간을 호출하는 것입니다. 아래 코드가 호출되어 여러 번 채널 이름이 추가됩니다.

    connect: function (a) {if (a) { 
        this.cfg.request.url += a // <---- 
    } 
    this.connection = $.atmosphere.subscribe(this.cfg.request) 
    
  3. 연결 해제 방법은 PF 4.0에서 사용할 수 있습니다. 또는 push.js에 다음 코드를 추가 할 수 있습니다.

    disconnect: function() { 
        this.connection.close() 
    }