【问题标题】:Get data from a web socket in a Spring Boot web application从 Spring Boot Web 应用程序中的 Web 套接字获取数据
【发布时间】:2017-01-22 06:04:43
【问题描述】:

我是 Spring Boot 和 Websockets 的新手。 我对 Java 很熟悉,并且读过一些关于 Websockets 和 Spring Boot 框架的东西。 我需要与 Web 套接字通信并在现有的 Spring Boot Web 应用程序中获取数据。 谁能让我知道我可以从哪里开始以及任何好的在线资源?我做了谷歌,但大部分例子我很难在短时间内掌握。如果可能的话,也从概念上向我解释一下。

提前致谢

【问题讨论】:

    标签: java spring-mvc websocket spring-websocket


    【解决方案1】:

    在 Spring Boot 中创建一个基本的 websocket 应用程序 你需要:

    - 首先,启用 Websocket 支持,例如使用:

    @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() + "!");
        }
    
    }
    

    - 其次,创建一个消息处理控制器:

    @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();
        }
    
    }
    

    - 创建浏览器客户端

    function connect() {
        var socket = new SockJS('/gs-guide-websocket');
        stompClient = Stomp.over(socket);
        stompClient.connect({}, function (frame) {
            setConnected(true);
            console.log('Connected: ' + frame);
            stompClient.subscribe('/topic/greetings', function (greeting) {
                showGreeting(JSON.parse(greeting.body).content);
            });
        });
    }
    

    我想你可以从这个例子开始,https://spring.io/guides/gs/messaging-stomp-websocket/

    【讨论】:

    • 如何匿名向客户端发送数据。我的意思是即使客户端不通过WebSocket发送任何数据,如何通过WebSocket从服务器端向客户端发送数据?
    【解决方案2】:

    查看我对类似问题的回答: SockJS Java Client Implementation for non-web application

    在其中,您可以找到能够发送/接收 websocket 数据的客户端示例。

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 2021-06-26
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      相关资源
      最近更新 更多