Spring Boot项目中使用WebSocket消息代理功能

  1. 添加依赖:在pom.xml文件中添加Spring Boot的WebSocket依赖。
    <dependencies>
        <!-- Spring Boot Starter Websocket -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
    </dependencies>
  2. WebSocket配置类 (WebSocketConfig.java):
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.*;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        //这个代表了前端需要通过/ws路径来建立连接
        registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        //这个你就把它当作创建了"/topic", "/queue"这两个频道,然后前端建立连接后
        //可以监听这两个频道,后端发送消息到这其中频道后,前端可以接收到
        registry.enableSimpleBroker("/topic", "/queue");
        //这个代表前端可以通过/user开头的地址,来给服务端发送消息,服务端可以用     
        //@MessageMapping注解来接收消息
        // @MessageMapping("/sendMessage") 例如这样写,前端就需要通过/user/sendMessage来给后        
        //端的这个方法发送消息
        registry.setUserDestinationPrefix("/user");
    }
}

WebSocket控制器 (WebSocketController.java):

import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Controller;

@Controller
public class WebSocketCon
posted @ 2024-08-13 01:28  在线电影制作人  阅读(7)  评论(0)    收藏  举报  来源