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

我想使用角度和java弹簧/弹簧启动构建一个经典的警报面板,该面板可以实时响应事件和更新,因此用户无需刷新页面即可获取最新警报。由于需要实时更新,似乎Web套接字是我最好的选择。

在浏览了一些教程之后,似乎从angular连接到后端插座将非常容易,并且可以轻松打开/关闭连接。这将使用踩踏和袜子js客户端。

但是,在创建用户将订阅的各种“主题”时,我的问题似乎将出在后端。所有这些教程仅介绍如何在服务器启动时创建每个用户都应该加入的静态房间(如聊天应用程序)。但对于我的方案,我需要动态创建主题(每个用户一个单独的主题),而不是在开始时创建我的所有主题。

是否有人有使用弹簧或弹簧启动来动态创建主题以供我的用户订阅的经验吗?

我一直在看的主要教程是:https://medium.com/oril/spring-boot-websockets-angular-5-f2f4b1c14cee


慕的地10843
浏览 51回答 1
1回答

慕桂英546537

我发现通过在我的控制器中使用它:@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);}在我的配置中与此相结合:@Overridepublic void registerStompEndpoints(StompEndpointRegistry registry) {    registry.addEndpoint("/socket")            .setAllowedOrigins("*")            .withSockJS();}@Overridepublic void configureMessageBroker(MessageBrokerRegistry registry) {    registry.setApplicationDestinationPrefixes("/app")            .enableSimpleBroker("/chat", "/meeting");}我能够动态创建聊天室,其中一个聊天室中的客户端不会从另一个聊天室中的客户端接收消息
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java