2012-02-28 4 views
1

셋업의 수신 방지 경우 을 내 서버 클래스가 자신의 채널에 게시하면 handleMessage 함수가 호출됩니다. 일반적으로 나는 이것을 원하지 않지만, 나는 그것을 해결할 수있다. 서버는 서버가 언제 메시지를 보낼지를 알 필요가 없다. 게시하는 대신 ServerSession.deliver를 사용할 수 있습니까?지역 게시 한 메시지

실제 질문 : 클라이언트에서 서버 클래스의 채널로 메시지를 보냅니다. 서버의 handleMessage 함수가 호출되지만 메시지는 원래 클라이언트로 다시 전송됩니다. 메시지가 원래 클라이언트로 다시 전송되지 않도록 서버를 구성하는 방법이 있습니까?

Extension 클래스를 보았습니다.하지만 이것은 개별 클라이언트에 메시지를 보내는 것보다 한 레벨 위에있는 것 같습니다 (서버를 포함하여 모든 클라이언트로 메시지를 보내지 않으면 메시지가 삭제됩니다).

아이디어가 있으십니까? 미리 감사드립니다.

답변

1

메시지가 원래 보낸 사람에게 다시 전송되면 해당 채널에 가입되었을 가능성이 큽니다.

당신은 채널의 이름을 지정하지 않은,하지만 당신은 방송 채널과 서비스 채널, here를 참조 사이의 서로 다른 이해한다.

클라이언트가 서비스 채널에 게시하는 경우 메시지는 서버에 도착하고 구독자에게 브로드 캐스트되지 않지만 클라이언트가 브로드 캐스트 채널에 게시하면 서버는 구독자 (클라이언트)에게 브로드 캐스트하므로 그 이유는 고객이 메시지를 다시받는 이유 일 수 있습니다.

ServerSession.deliver()를 사용하면 모든 클라이언트에 브로드 캐스트하지 않고 특정 클라이언트에 메시지 배달을 수행 할 수 있습니다.

클라이언트가 메시지를 브로드 캐스팅 할 필요가없는 경우 일반적으로 최상의 솔루션은 서비스 채널을 사용하는 것입니다.

+0

감사합니다. 나는 간단한 것을 놓친다는 것을 알았다. 나는 분명히 설명서의 서비스 섹션을 완전히 건너 뛴다! – Arsinio