Java 处理用户警报面板实时更新的最佳方法

Java 处理用户警报面板实时更新的最佳方法,java,angular,spring,spring-boot,websocket,Java,Angular,Spring,Spring Boot,Websocket,我想使用angular和JavaSpring/spring引导构建一个经典的警报面板,实时响应事件和更新,这样用户就不需要刷新页面来获取最新的警报。因为需要实时更新,所以web套接字似乎是我最好的选择 在阅读了一些教程之后,从angular连接到后端套接字似乎非常容易,并且可以轻松地打开/关闭连接。这将使用stompjs和sockjs客户端 然而,在创建用户将订阅的各种“主题”时,我的问题似乎将出现在后端。所有这些教程只涉及在服务器上创建一个每个用户都应该加入的静态聊天室(如聊天应用程序)。但是

我想使用angular和JavaSpring/spring引导构建一个经典的警报面板,实时响应事件和更新,这样用户就不需要刷新页面来获取最新的警报。因为需要实时更新,所以web套接字似乎是我最好的选择

在阅读了一些教程之后,从angular连接到后端套接字似乎非常容易,并且可以轻松地打开/关闭连接。这将使用stompjs和sockjs客户端

然而,在创建用户将订阅的各种“主题”时,我的问题似乎将出现在后端。所有这些教程只涉及在服务器上创建一个每个用户都应该加入的静态聊天室(如聊天应用程序)。但是对于我的场景,我需要动态地创建主题(每个用户一个单独的主题),而不是一开始就创建所有主题

有没有人有使用spring或spring boot动态创建供我的用户订阅的主题的经验

我一直在看的主要教程是:

我发现在我的控制器中使用这个:

@MessageMapping("/meeting/{roomId}")
private void sendMessageTpPrivateRoom(String message, @DestinationVariable String roomId) throws IOException {
    System.out.println("message sent to: " + roomId);
    this.template.convertAndSend("/meeting/" + roomId, message);
    addToHistory(roomId, message);
}
结合我的配置:

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

@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
    registry.setApplicationDestinationPrefixes("/app")
            .enableSimpleBroker("/chat", "/meeting");
}
我能够动态创建聊天室,其中一个聊天室中的客户端不会从另一个聊天室中的客户端接收消息