簡體   English   中英

帶有Spring MVC,Stomp,Sockjs,Angular JS的Websocket

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM