现在我可以使用它了,但是我真的不知道 为什么 :
配置:
@Configuration@EnableWebSocketMessageBrokerpublic class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/stomp").withSockJS(); } @Override public void configureMessageBroker(MessageBrokerRegistry registry) { registry.enableSimpleBroker("/queue", "/topic"); // <- added "/queue" registry.setApplicationDestinationPrefixes("/app"); registry.setUserDestinationPrefix("/user"); }}控制器:
@MessageMapping("/search")@SendToUser // <- maps to "/user/queue/search"public String search(@Payload String xxx) { return "TEST1234";}JS:
stompClient.subscribe('/user/queue/search', function(data){ alert(data.body);});spring输出:
DEBUG org.springframework.web.servlet.DispatcherServlet: 996 - Successfully completed requestDEBUG o.s.w.s.handler.LoggingWebSocketHandlerDecorator: 45 - New WebSocketServerSockJsSession[id=fkbmnpkj]DEBUG o.s.m.simp.broker.SimpleBrokerMessageHandler: 158 - Processing ConNECT session=fkbmnpkjDEBUG o.s.m.simp.user.UserDestinationMessageHandler: 187 - Translated /user/queue/search -> [/queue/search-userfkbmnpkj]DEBUG o.s.m.simp.broker.SimpleBrokerMessageHandler: 175 - Processing SUBSCRIBE /queue/search-userfkbmnpkj id=sub-0 session=fkbmnpkj
现在,日志中还有一行代码,表示正在 处理SUBSCRIBE / queue / search-userfkbmnpkj id = sub-0
session = fkbmnpkj
那是以前没有的。
如果有人可以解释为什么我需要
/queue映射才能正常工作,这仍然会很好。



