서버에서 특정 사용자에게만 웹 소켓 메시지를 보내는 방법은 무엇입니까?
내 webapp에는 스프링 보안 설정이 있으며 websocket을 사용합니다. 서버에서 특정 사용자에게만 메시지를 보내려고하는 까다로운 문제가 발생했습니다 .
매뉴얼 을 읽은 나의 이해는 우리가 할 수있는 서버에서 나온 것입니다.
simpMessagingTemplate.convertAndSend("/user/{username}/reply", reply);
그리고 클라이언트 측에서 :
stompClient.subscribe('/user/reply', handler);
하지만 구독 콜백을 호출 할 수 없었습니다. 나는 많은 다른 길을 시도했지만 운이 없다.
/ topic / reply로 보내면 작동하지만 다른 연결된 사용자도 모두 수신합니다.
문제를 설명하기 위해 github에서이 작은 프로젝트를 만들었습니다 : https://github.com/gerrytan/wsproblem
재현 단계 :
1) 프로젝트 복제 및 빌드 (jdk 1.7 및 maven 3.1을 사용하고 있는지 확인)
$ git clone https://github.com/gerrytan/wsproblem.git
$ cd wsproblem
$ mvn jetty:run
2)로 이동하고 http://localhost:8080
bob / test 또는 jim / test를 사용하여 로그인합니다.
3) "사용자 별 메시지 요청"을 클릭합니다. 예상 : "안녕하세요 {username}"메시지가이 사용자에 대해서만 "나에게만 수신 됨"옆에 표시됨, 실제 : 아무것도 수신되지 않음