springboot下websocket前台后端数据长连接

首先导入依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-messaging</artifactId>
        </dependency>

spring-security-messaging 是后面继承 AbstractSecurityWebSocketMessageBrokerConfigurer需要用到的依赖

WebSocketConfig

@Configuration
@EnableWebSocketMessageBroker	//此注解表示使用STOMP协议来传输基于消息代理的消息,此时可以在@Controller类中使用@MessageMapping	
public class WebSocketConfig  implements WebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
         /**
         * 注册 Stomp的端点
         * addEndpoint:添加STOMP协议的端点。这个HTTP URL是供WebSocket或SockJS客户端访问的地址
         * withSockJS:指定端点使用SockJS协议
         */
        registry.addEndpoint("/websocket/tracker")     //物流消息通道,
            .setAllowedOrigins("*")     //允许跨域,里面路径可以设定
            .withSockJS()					//指定协议
            .setInterceptors(httpSessionHandshakeInterceptor())  ;        //设置拦截器()
    }
    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
         /**
         * 配置消息代理
         * 启动简单Broker,消息的发送的地址符合配置的前缀来的消息才发送到这个broker
         */
        registry.enableSimpleBroker("/topic","/user");
    }


	//拦截器
 	@Bean
    public HandshakeInterceptor httpSessionHandshakeInterceptor() {
  
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring Boot集成WebSocket可以实现后端向前端发送数据的功能。下面是实现该功能的步骤: 1. 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 2. 创建一个WebSocket配置类,用于配置WebSocket相关的Bean。可以创建一个类,并使用`@Configuration`和`@EnableWebSocket`注解进行标记,如下所示: ```java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/websocket"); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } } ``` 3. 创建一个WebSocket处理器类,用于处理WebSocket连接和消息的逻辑。可以创建一个类,并实现`WebSocketHandler`接口,如下所示: ```java public class MyHandler implements WebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { // 当建立WebSocket连接时调用,可以在这里进行一些初始化操作 } @Override public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { // 处理收到的消息 String payload = (String) message.getPayload(); // 向前端发送消息 session.sendMessage(new TextMessage("Hello, " + payload)); } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { // 当关闭WebSocket连接时调用,可以在这里进行一些清理操作 } @Override public boolean supportsPartialMessages() { return false; } } ``` 4. 在Controller中注入`SimpMessagingTemplate`类,用于发送消息给WebSocket客户端。然后,可以在需要发送消息的地方调用`simpMessagingTemplate.convertAndSend()`方法发送消息,如下所示: ```java @RestController public class MyController { private final SimpMessagingTemplate messagingTemplate; public MyController(SimpMessagingTemplate messagingTemplate) { this.messagingTemplate = messagingTemplate; } @GetMapping("/send") public String sendMessage() { messagingTemplate.convertAndSend("/websocket", "Hello from the server!"); return "Message sent"; } } ``` 5. 在前端页面中使用JavaScript代码连接WebSocket,并处理接收到的消息。可以使用`new WebSocket()`方法创建WebSocket对象,并使用`onmessage`事件监听接收到的消息,如下所示: ```javascript var websocket = new WebSocket("ws://localhost:8080/websocket"); websocket.onmessage = function(event) { var message = event.data; // 处理接收到的消息 console.log(message); }; ``` 以上就是使用Spring Boot集成WebSocket实现后端向前端发送数据的基本步骤。通过WebSocket连接后端可以通过WebSocketSession对象向前端发送消息。前端页面可以通过WebSocket对象接收并处理后端发送的消息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值