相关疑难解决方法(0)

简单:convertAndSendToUser 我从哪里得到用户名?

在 Spring Boot (Websockets) 中

我刚看到这个例子:

messaging.convertAndSendToUser( username, "/queue/notifications",
                       new Notification("You just got mentioned!"));
Run Code Online (Sandbox Code Playgroud)

这家伙从哪里得到用户名?我找不到任何关于从哪里获得该用户名的提及......

java spring websocket spring-boot spring-websocket

4
推荐指数
1
解决办法
5915
查看次数

Spring Stomp @SendToUser与未经身份验证的用户无法正常工作

我正在尝试回复未经身份验证的用户使用@SendToUser.

  • 春季4.1.1

我正在使用新创建的Spring Boot应用程序,我唯一的配置是:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/stomp").withSockJS();
    }
    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.enableSimpleBroker("/topic");
        registry.setApplicationDestinationPrefixes("/app");
        registry.setUserDestinationPrefix("/user"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

控制器代码:

@MessageMapping("/search")
@SendToUser("/search")
public String search(@Payload String xxx) {
    return "TEST1234";
}
Run Code Online (Sandbox Code Playgroud)

JS:

var socket = new SockJS('/webapp/stomp');
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
    stompClient.subscribe('/user/search', function(data){
        alert(data.body);
    });
});
Run Code Online (Sandbox Code Playgroud)

弹簧输出:

DEBUG  org.springframework.web.servlet.DispatcherServlet: 996 - Successfully completed request
DEBUG   o.s.w.s.handler.LoggingWebSocketHandlerDecorator:  45 - New WebSocketServerSockJsSession[id=shizav88]
DEBUG       o.s.m.simp.broker.SimpleBrokerMessageHandler: 158 - …
Run Code Online (Sandbox Code Playgroud)

spring stomp spring-mvc spring-messaging spring-websocket

1
推荐指数
1
解决办法
6321
查看次数