[英]Websocket with Spring mvc, stomp, sockjs, angular JS
通過spring.io和http://www.baeldung.com/websockets-spring提供的示例,可以幫助在客戶端和服務器之間創建websocket連接,但我的情況是這樣。 -有人正在通過UI創建消息,該消息傳遞給Spring控制器(單獨的控制器)。 -我需要從此控制器通知/發送/廣播此消息給所有連接的客戶端。 -如何將消息從接收消息的控制器傳遞到處理程序。 我還引用了帶有Sockjs和Spring 4的WebSocket,但此處沒有Stomp ,並且發布了相同的問題。
有人可以幫我嗎,在此先謝謝!
我實際上也為Baeldung撰寫文章,目前正在寫一篇有關如何在Spring中為Websocket添加安全性的小文章! 您只需要做幾個步驟,即可完成所有工作!
在后端方面(由於您已經說過UI已經完成或正在構建,因此我將只關注后端),它實際上包括三個部分:(1)必要的POJO,控制器和配置。
您的POJO非常簡單-在這里我們只使用Greeting和Message來指定名稱和基本文本數據類型(我將在此處跳過以節省空間,但是您可以在下面的資源中看到它)。
您的控制器將如下所示:
@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() + "!");
}
}
看一看注釋-這些實際上是使該控制器與普通REST控制器不同的地方。
您的配置看起來像這樣-再次查看注釋-特別是'@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/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.