springboot2 websocket
创始人
2025-01-09 10:37:37

Spring Boot 2中实现WebSocket通信指南

引言

WebSocket是一种在单个长连接上进行全双工通信的网络通信协议。它允许服务器和客户端之间进行实时、双向的数据交换。Spring Boot 2为开发者提供了便捷的WebSocket集成方式,使得构建实时应用变得更加简单。本文将详细介绍如何在Spring Boot 2中实现WebSocket通信。

前言

在开始之前,请确保你的开发环境已经安装了Spring Boot 2和相关的依赖。以下是一个基本的Spring Boot项目结构,我们将在此基础上实现WebSocket功能。

springboot2 websocket

my-springboot-websocket
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           └── myapp
│   │   │               ├── controller
│   │   │               │   └── WebSocketController.java
│   │   │               └── WebSocketConfig.java
│   │   └── resources
│   │       └── application.properties
└── pom.xml

步骤一:添加依赖

pom.xml文件中,添加以下依赖项:


    
    
        org.springframework.boot
        spring-boot-starter-websocket
    
    
    
        org.springframework.boot
        spring-boot-starter-thymeleaf
    
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    

步骤二:配置WebSocket

application.properties中配置WebSocket的相关属性,例如端口和服务器地址:

server.port=8080
spring.websocket.port=8081
spring.websocket.path=/ws

步骤三:创建WebSocket配置类

创建一个配置类WebSocketConfig,用于注册WebSocket处理器和设置WebSocket的相关配置:

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/ws").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.enableSimpleBroker("/topic");
        registry.setApplicationDestinationPrefixes("/app");
    }
}

步骤四:创建WebSocket控制器

创建一个控制器WebSocketController,用于处理WebSocket消息:

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

@Controller
public class WebSocketController {

    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public String greeting(String message) {
        return "Hello, " + message + "!";
    }
}

步骤五:前端集成

在前端页面中,使用SockJS和STOMP协议与WebSocket服务器通信。以下是一个简单的HTML和JavaScript示例:




    WebSocket Example
    
    
    


    
    

总结

通过以上步骤,我们成功地在Spring Boot 2中实现了WebSocket通信。你可以根据实际需求扩展WebSocket的功能,例如消息广播、分组管理等。WebSocket为实时应用提供了强大的支持,希望本文能帮助你更好地了解和使用Spring Boot 2中的WebSocket功能。

相关内容

热门资讯

好消息候补成功,坏消息车开走了... (来源:上观新闻)前一秒还庆幸终于抢到票后一秒发现:人、车、票,三者完美错开,钱花了,票废了……今(...
最高检:文创产品版权案件高发,... 2月24日,最高人民检察院知识产权检察厅副厅长刘太宗做客“学思践悟党的二十届四中全会精神 持续推进习...
日本松下宣布:将欧美电视销售业... 本文来自微信公众号“大象新闻”2月24日,据报道,日本电子巨头松下控股正式宣布,2026年4月起将北...
走路快慢藏着“长寿密码”,5种... 健康聚焦1走路快慢藏着“长寿密码”美国《梅奥诊所学报》曾发表一项研究显示,无论体重如何,走路快的人往...
祝贺!亨通光电总经理张建峰入选... 运营商财经网讯近日,运营商财经网推出通信设备行业系列杰出榜单,对过去一年表现优异的企业管理者进行表彰...