나는 각 행에 금융 상품과 실시간 가격을 보여주는 p:dataTable
을 가지고 있으며 p:socket
, 각 행당 하나의 채널을 사용하여 방송 채널을 설정하려고합니다. 목표는 하나의 계측기에 새로운 가격이 도착하면 더 나은 성능을 얻기 위해 셀만 업데이트 할 수 있다는 것입니다.PrimeFaces Push : 여러 동적 채널 구독
먼저 서버 측에서 동적 채널 구독을 사용하여 showcase's chat example에서 채팅 예제를 복제하려고했지만 클라이언트가 메시지가있는 채널을 가져올 수 없었습니다 (p:socket
여러 채널을 처리 함). ?).
<p:dataTable var="instrument" … >
<p:socket onMessage="handleMessage(#{instrument.id})" channel="/price" autoConnect="false"
widgetVar="subscriber_#{instrument.id}" />
…
</p:dataTable>
및 서버 측에서 :
그럼,이 데이터 테이블에 p:socket
를 삽입하여 시도
for (Instrument instrument : instruments) {
RequestContext.getCurrentInstance().execute("subscriber_" +instrument.getId() + ".connect('/" + instrument.getId() + "')");
}
그러나 이것은 클라이언트에 오류가 발생합니다 :
ReferenceError: subscriber_123 is not defined
을
다른 방법이 있습니까? 클라이언트 또는 서버 측에서 구독 관리에 아무런 문제가 없지만 유일한 중요한 점은 모든 가격을 모든 고객에게 전달하고 싶지 않다는 것입니다. 여기에 동적으로 가입 할 수있는 방법은 여전히 작동 할 수없는 경우
사용 PrimeFaces