gpt4 book ai didi

java - Websocket 与 Spring mvc、stomp、sockjs、Angular JS

转载 作者:行者123 更新时间:2023-12-02 13:15:15 24 4
gpt4 key购买 nike

使用 spring.io 和 http://www.baeldung.com/websockets-spring 提供的示例有助于在客户端和服务器之间创建 websocket 连接,但我的情况是。- 有些人正在从 UI 创建消息,并将其传递给 Spring Controller (单独的 Controller )。- 我需要从这个 Controller 向所有连接的客户端通知/发送/广播此消息。- 消息如何从接收消息的 Controller 传递到处理程序。我还引用了WebSocket with Sockjs & Spring 4 but without Stomp这里也发布了同样的问题。

有人可以帮我吗,先谢谢了!!

最佳答案

我实际上也为 Baeldung 写作,目前正在写一篇关于如何在 Spring 中为 websockets 添加安全性的小文章!您只需执行几个步骤即可让这一切正常运行!

后端方面(既然你说UI已经完成或正在构建,我在这里只关注后端),它实际上涉及三个部分:(1)必要的POJO、 Controller 和配置。

您的 POJO 将非常简单 - 这里我们只使用 Greeting 和 Message 来指定名称和基本文本数据类型(我将在此处跳过这一点以节省空间,但您可以在下面的资源中看到它)。

您的 Controller 将如下所示:

@Controller
public class GreetingController {

@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
Thread.sleep(1000); // simulated delay
return new Greeting("Hello, " + message.getName() + "!");
}

}

看一下注释 - 这些确实是该 Controller 与普通 REST Controller 的区别。

您的配置如下所示 - 再次查看注释 - 特别是“@EnableWebSocketMessageBroker” - 和类“AbstractWebSocketMessageBrokerConfigurer”:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/gs-guide-websocket").withSockJS();
}
}

也看看这个很棒的资源:https://spring.io/guides/gs/messaging-stomp-websocket/

关于java - Websocket 与 Spring mvc、stomp、sockjs、Angular JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43815564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com