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

springboot使用websocket

文章目录

  • 一、概述
    • 1、简介
  • 二、 使用
    • 1、引包
    • 2、配置处理器
    • 3、前端测试

一、概述

1、简介

简介略,附上官方文档,spring5和spring6的官方文档内容大致是一样的:
https://docs.spring.io/spring-framework/docs/5.2.25.RELEASE/spring-framework-reference/web.html#websocket
https://docs.spring.io/spring-framework/reference/6.1/web/websocket.html

二、 使用

1、引包

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

2、配置处理器

创建WebSocket服务器可以实现WebSocketHandler或者,更有可能的是,扩展TextWebSocketHandler或者BinaryWebSocketHandler。以下示例使用TextWebSocketHandler

import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;import java.util.concurrent.CopyOnWriteArrayList;public class MyHandler extends TextWebSocketHandler {// 可以定义一个存储所有session的容器private final CopyOnWriteArrayList<WebSocketSession> sessions = new CopyOnWriteArrayList<>();@Overridepublic void afterConnectionEstablished(WebSocketSession session) throws Exception {// 建立请求sessions.add(session);System.out.println("Connection established: " + session.getId());}@Overrideprotected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {// 收到消息String payload = message.getPayload();System.out.println("Received message: " + payload);// 发送回复消息for (WebSocketSession s : sessions) {s.sendMessage(new TextMessage("Server received: " + payload));}}@Overridepublic void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {// 关闭链接sessions.remove(session);System.out.println("Connection closed: " + session.getId());}}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor;@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {/*** 将前面的WebSocket处理程序映射到特定的URL*/@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {registry.addHandler(myHandler(), "/myHandler")//.addInterceptors(new HttpSessionHandshakeInterceptor()) // 可以拦截session属性.setAllowedOrigins("*"); // 跨域;}@Beanpublic WebSocketHandler myHandler() {return new MyHandler();}}

3、前端测试

测试地址:https://tool.gitapp.cn/websocket/

连接ws://127.0.0.1:8080/myHandler,发送消息进行测试一下。

使用起来非常的方便

http://www.lryc.cn/news/522713.html

相关文章:

  • Redis的安装和配置、基本命令
  • Rnote:Star 8.6k,github上的宝藏项目,手绘与手写画图笔记,用它画图做笔记超丝滑,值得尝试!
  • python如何解析word文件格式(.docx)
  • 「刘一哥GIS」系列专栏《GRASS GIS零基础入门实验教程(配套案例数据)》专栏上线了
  • 使用nginx搭建通用的图片代理服务器,支持http/https/重定向式图片地址
  • 零基础构建最简单的 Tauri2.0 桌面项目 Star 88.4k!!!
  • 智能科技与共情能力加持,哈曼重新定义驾乘体验
  • 猫贫血吃什么能快速补血?
  • 微服务拆分
  • Android SystemUI——车载CarSystemUI加载(八)
  • 2025年编程语言热度分析:Python领跑,Go与Rust崛起
  • 前缀和 (一维 二维)
  • 精选算法合集
  • HackMyVM-Klim靶机的测试报告
  • C++内存分布
  • mysql主从复制sql进程中断,报错Tablespace is missing for table ……
  • STM32 FreeRTOS 信号量
  • Codemirror6个人使用心得总结
  • Ruby语言的软件开发工具
  • OpenHarmony API 设计规范
  • ESP8266 AP模式 网页配网 arduino ide
  • OpenCV基础:获取子矩阵的几种方式
  • C++ 之多线程相关总结
  • EF Core全局查询筛选器
  • 【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)
  • Objective-C语言的数据库交互
  • 基于 Spring Boot 和 Vue.js 的全栈购物平台开发实践
  • 笔记(数据运营方向)
  • qt vs ios开发应用环境搭建和上架商店的记录
  • [cg] glDrawBuffers MRT的应用