칸트는이 질문에 대한 대답은 충분하지 설명서에 대한 SimpleBrokerMessageHandler을 찾을 것으로 보인다. 통신 관계 - STOMP 봄
나는이 예제를 따라 갔다 : https://gerrydevstory.com/2014/03/04/stock-ticker-demo-webapp-using-spring-4-websocket/과는 클라이언트가 주제에 메시지를 전송하면 해당 주제에 가입 된 다른 모든 클라이언트들이 그 메시지가 나타날 것으로 보인다. 주제의 기본 관계가 many-to-many
인 것처럼
나는 관계가 많은 클라이언트와 서버에 다수의 클라이언트가 아닌 다수의 클라이언트에 하나 개의 서버를 의미 one-to-many
될 것이라고 기대. 클라이언트가 서버에 가장하는, 다른 사람에 가짜 주가를 보낼 수 위의 링크에서 다음 예제 -
이 문제는 보안/인증 문제를 제시한다.
이것이 행동이라면 스프링 웹 소켓과 스톰프의 설정에서 어딘가에 덮어 쓰기되거나 변경 될 수 있지만 나는 여기 어디서나 충분한 정보를 찾을 수 없다는 것도 기대할 것입니다.
그래서 질문은 다음과 같습니다- 기본 거동 SimpleBrokerMessageHandler 정말
many-to-many
인가? topic
의 의미를 정확히 이해하지 못하고 있습니까?- 이 동작을 어떻게 변경하거나 제어 할 수 있습니까? 그렇지 않으면
- , ActiveMQ를 또는 RabbitMQ 또는 제 3 자 브로커의 (a
one-to-many
방식을 구현하는) 내 요구에 어떤 도움이 될 것인가? 그리고 어떻게?/topic
접두어
대단히 감사합니다! 나는 내가 뭔가 잘못하고 있다고 생각하기 시작했다. 이것이 프로덕션 제품에서 사용되기 때문에 아직 출시되지 않은 스프링 보안 버전을 사용하고 싶지는 않습니다. 솔루션에 대한 귀하의 다른 제안은 매우 흥미로운 것 같습니다! 일대 다 관계 만 허용하려면 ChannelIntercetor 코드에서 확인하고 수행해야하는 것에 대한 정보를 제공 할 수 있습니까? – SatA
'ChannelInterceptorAdapter'에서 확장하고 논리로'preSend' 메소드를 구현하면 메시지를 버리기 위해 null을 리턴합니다. 또 다른 옵션은 앱 대상 (/ app/..)을 만들고, 사용자가 메시지를 보내고, 컨트롤러에서 메시지를 처리 한 다음 결과를 브로커 대상에 전송하여 브로드 캐스트합니다 ('@ SendTo' 참조). –
OK , 감사. 다른 옵션에 대해서는 신뢰성 문제가 해결되지 않습니다. 위의 제 의견에 강조 했어야합니다. 어쨌든 도와 주셔서 감사합니다, 나는 그것을 시도합니다. – SatA