当前位置: 首页 > news >正文

Spring Boot整合WebSocket

目录

?引言

1.WebSocket 基础知识

?1.1 什么是 WebSocket?

?1.2 WebSocket 的应用场景

?2.Spring Boot WebSocket 整合步骤

2.1 创建 Spring Boot 项目

2.2 添加 Maven 依赖

2.3 配置 WebSocket

2.4 创建 WebSocket 控制器

2.5 创建前端页面


引言

在现代 web 应用中,实时通信变得越来越重要。传统的 HTTP 请求-响应模型并不适合需要实时更新的场景,例如在线聊天、实时通知、在线游戏等。WebSocket 协议提供了一种在单个连接上进行双向通信的方式,能够有效地解决这一问题。Spring Boot 作为一个快速开发框架,提供了对 WebSocket 的良好支持,使得开发者能够快速构建基于 WebSocket 的应用。

本文将详细介绍如何在 Spring Boot 中整合 WebSocket,分为多个部分,包括 WebSocket 的基本概念、Spring Boot 的相关配置、实现步骤以及一些常见问题和最佳实践。

1.WebSocket 基础知识

1.1 什么是 WebSocket?

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它允许客户端和服务器之间进行实时数据交换,而无需每次都重新建立连接。WebSocket 的核心特性包括:

双向通信:客户端和服务器都可以主动发送和接收消息。
低延迟:由于 WebSocket 连接是持久的,消息可以立即传递,而不需要重复的 HTTP 请求。
节省资源:通过减少 HTTP 请求的开销,WebSocket 可以节省带宽和服务器资源。

1.2 WebSocket 的应用场景

WebSocket 适用于多种实时交互的场景,包括但不限于:

实时聊天应用
在线游戏
实时数据监控
股票行情推送
实时通知

2.Spring Boot WebSocket 整合步骤

2.1 创建 Spring Boot 项目

首先,我们需要创建一个新的 Spring Boot 项目。可以使用 Spring Initializr(https://start.spring.io/)生成一个基础项目,选择以下依赖:

- Spring Web
- Spring WebSocket
- Spring Boot DevTools(可选,用于开发时热重启)

2.2 添加 Maven 依赖

在 `pom.xml` 中添加 WebSocket 的相关依赖(如果使用 Spring Initializr 创建项目,这些依赖会自动添加):

xml

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

2.3 配置 WebSocket

在项目中创建一个配置类,配置 WebSocket 的端点和消息代理。

```java
package com.example.demo.config;

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) {
// 注册 STOMP 协议的 endpoint,并指定使用 SockJS 协议
registry.addEndpoint(“/ws”).withSockJS();
}

@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
// 配置消息代理
config.enableSimpleBroker(“/topic”, “/queue”);
config.setApplicationDestinationPrefixes(“/app”);
}
}
```

2.4 创建 WebSocket 控制器

接下来,我们需要创建一个控制器来处理 WebSocket 消息。

```java
package com.example.demo.controller;

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

@Controller
public class WebSocketController {

@MessageMapping(“/send”)
@SendTo(“/topic/messages”)
public String sendMessage(String message) {
return message; // 返回接收到的消息
}
}

2.5 创建前端页面

在 `src/main/resources/templates` 目录下创建一个 `index.html` 文件,用于测试 WebSocket。

```html

WebSocket Demo

WebSocket Demo

Send
http://www.dtcms.com/a/61274.html

相关文章:

  • 基于深度学习的中文文本情感分析系统
  • EasyTwin全新体验 | 春启新章,智焕新生
  • 隧道定向号角喇叭为隧道安全保驾护航
  • Microsof Visual Studio Code 安装教程(中文设置)
  • 计算机网络基础知识(web漏洞解析与攻防实战)
  • stm32week6
  • linux docker相关指令
  • Centos磁盘扩容
  • 企业招聘能力提升之道:突破困境,精准纳才
  • Synology 部署的 WordPress 無法升級至最新版本時,可以透過以下改良版指南進行排查和解決。
  • springboot3.X 无法解析parameter参数问题
  • git规范提交之commitizen conventional-changelog-cli 安装
  • 使用Python和p5.js创建的迷你游戏示例,该游戏包含多个屏幕和动画,满足在画布上显示图像、使用键盘命令移动图像
  • [GHCTF 2025]SQL??? 【sqlite注入】
  • java中过滤器
  • 反码与补码
  • 【阿里云】控制台使用指南:从创建ECS到系统诊断测评
  • (base)user1@ubuntu:~$pip install xxxx(xxxx表示第三方库) 分析
  • Centos7系统遇到的第一个问题 yum
  • 【面试】框架
  • ngx_regex_create_conf
  • Git(一)
  • leetcode hot100--动态规划【五步总纲】
  • 文本对抗样本系列的论文阅读笔记(整理合订)
  • 学习笔记11——并发编程之并发关键字
  • ArcGIS Pro中字段的新建方法与应用
  • 从新手到专家:嵌入式代码空间优化技巧
  • C++ Primer Plus第十二章课后习题总结
  • 【二分算法】-- 三种二分模板总结
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-5.1.2基于Painless脚本的日志告警