Spring Boot WebSockets通知

时间:2016-10-30 10:00:52

标签: spring spring-boot websocket spring-websocket spring-messaging

在我的Spring Boot应用程序中,我试图实现基于WebSockets的通知功能。

我提供了以下配置:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/notifications").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.enableSimpleBroker("/topic", "/queue");
    }

}

并尝试使用SimpMessagingTemplate以便从服务器端向特定客户端(用户)发送消息。

@Autowired
private SimpMessagingTemplate simpMessagingTemplate;

public void sendMessages() {
    simpMessagingTemplate.convertAndSendToUser(%user%, "/horray", "Hello, World!");
}

现在我不了解一些事情:

  1. %user%参数应该使用什么值 simpMessagingTemplate.convertAndSendToUser方法?

  2. 我的/notifications端点之间的相关性是什么? 以WebSocketConfig.registerStompEndpoints方法注册 destination参数 simpMessagingTemplate.convertAndSendToUser方法以及如何正确使用它?

  3. 如何保护用户免于阅读其他人的消息 客户?

1 个答案:

答案 0 :(得分:1)

user参数是客户在订阅目的地时使用的名称,请参阅Spring Reference Chapter 26.4.11 User Destinations

目的地与终点:

  • Endpoint是websocket / message brocker正在监听的网址
  • 目的地是消息brocker中的主题或主题