springboot 集成websocket

SpringBoot 集成 WebSocket SpringBoot 整合 websocket、websocket 的通信应用 阅读详情

websocket 协议,作为对于http 的扩展,解决只能客户端发起请求,服务端被动响应的协议,全双工通信,非常好用,这里说一下springboot 中的实现

具体实现很简单,只有以下三步

添加pom 依赖

无需指定websocket 版本,默认使用springboot 版本

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

添加server 端业务逻辑

这里只实现个简单功能,收到客户端消息后,将收到的内容大写后,再返回给客户端

@Slf4j
@Component
@ServerEndpoint("/info")    // 指定websocket 连接的url
public class WebSocketServer {
    @OnOpen
    public void onOpen(Session session) {
        log.info("客户端:{}连接成功",session.getId());
    }

    @OnClose
    public void onClose(Session session) {
        log.info("客户端:{}连接断开",session.getId());

    }

    @OnMessage
    public String onMsg(String message,Session session) {
        log.info("从客户端:{} 收到<--:{}", session.getId(),message);

        String send=message.toUpperCase();
        String result="客户:%s您好,来自server 的消息:%s";
        result = String.format(result, session.getId(), send);
        return "来自server 的消息:" + result;
    }

}

添加websocket 配置类

配置类非常简单,将对象交给spring 容器进行处理

@Slf4j
@Configuration
@EnableWebSocket
public class WebSocketConfig {
    @Bean
    public ServerEndpointExporter serverEndpoint(){
        return new ServerEndpointExporter();
    }

}

功能测试

使用在线测试网站

https://www.dute.org/websocket
http://www.websocket-test.com/

测试截图如下,可以正常使用

  • 客户端界面1

在这里插入图片描述

  • 客户端界面2

在这里插入图片描述

  • 服务端打印内容
2022-05-29 12:13:31.530  INFO 16776 --- [           main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getProductByIdUsingGET_2
2022-05-29 12:13:31.532  INFO 16776 --- [           main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getProductByIdUsingGET_3
2022-05-29 12:13:31.556  INFO 16776 --- [           main] com.kk.MaicaiApplication                 : Started MaicaiApplication in 2.922 seconds (JVM running for 3.889)
2022-05-29 12:13:52.231  INFO 16776 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-05-29 12:13:52.232  INFO 16776 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2022-05-29 12:13:52.233  INFO 16776 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
2022-05-29 12:13:52.259  INFO 16776 --- [nio-8080-exec-1] com.kk.websocket.WebSocketServer         : 客户端:0连接成功
2022-05-29 12:14:04.214  INFO 16776 --- [nio-8080-exec-4] com.kk.websocket.WebSocketServer         : 从客户端:0 收到<--:aaaa
2022-05-29 12:14:17.699  INFO 16776 --- [nio-8080-exec-3] com.kk.websocket.WebSocketServer         : 客户端:1连接成功
2022-05-29 12:14:23.867  INFO 16776 --- [nio-8080-exec-2] com.kk.websocket.WebSocketServer         : 从客户端:1 收到<--:bbbb
2022-05-29 12:14:28.288  INFO 16776 --- [nio-8080-exec-9] com.kk.websocket.WebSocketServer         : 客户端:1连接断开
2022-05-29 12:14:31.624  INFO 16776 --- [nio-8080-exec-6] com.kk.websocket.WebSocketServer         : 客户端:0连接断开
SpringBoot整合WebSocket服务 1、前言注意: 仅使用 SpringBoot封装好的 spring-boot-starter-websocket 服务,并不是使用第三方 Netty或者 Apache MINAspring-boot-starter-web: 底层使用 Java WebSocket API (JSR-356)实现spring-boot-starter-webflux: 底层使用 Netty实现(没有使用过,不知道具体)官方文档1官方文档22、开始使用2.1、加入Maven依赖。 阅读详情

相关推荐

springboot集成WebSocket遇到的问题

springboot集成websocket遇到的问题

weixin_44021888的博客 3121

SpringBoot 集成WebSocket详解

SpringBoot 集成WebSocket详解

Charge8的博客 4万+

【SpringBoot系列】springboot websocket全套模板,省去搭建的烦恼,还有福利拿哦

springboot websocket全套模板,省去搭建的烦恼,还有福利拿哦

我是香菜 1万+

SpringBoot视频教程全家桶

本课程通过以Spring Boot 2.x为技术主线,发散式集成覆盖其他相关知识点,并进行逐一实战讲解。通过本系列课程的学习,你能够学到以下内容:不仅仅能收获到Spring Boot的使用的知识,更能快速扩充知识面,补全基础知识,快速Spring Boot入门到实战。更多基于Spring Boot的组件集成;Spring相关功能及特性在Spring Boot中的使用;部分功能核心源码分析等同时,本课程也可作为大家在日常实践中可快速学习、参考的视频集锦。

银河麒麟V10新特性解析:从安装到AI应用的全面指南

本文全面解析银河麒麟V10操作系统的新特性,从安装指南到AI应用开发,详细介绍了其智能调度引擎、神经网络加速和场景化AI工具集等核心功能。通过实战案例展示如何高效配置AI环境、优化性能,并解决常见问题,助力开发者在国产操作系统上实现高效AI开发与应用部署。

seed的博客 299

DeepSeek-OCR又更新:一起看下OCR1和OCR2

DeepSeek-AI 最近又又开源了,这次是DeepSeek-OCR2,结合之前发布的DeepSeek-OCR ,可以发现DeepSeek走出了一条不同于主流 OCR 方案的技术路线。第一代模型探索了**“视觉作为文本压缩介质”的可行性,打破了传统的序列长度限制;第二代模型则通过“Visual Causal Flow(视觉因果流)”**架构,将因果推理引入视觉编码器,解决了复杂排版下的阅读顺序难题。本文将从架构设计、逻辑结构、训练范式及工程实现四个维度,深度剖析这两代模型的异同与创新。

kakaZhui的博客 622

Springboot集成websocket

Springboot集成websocket

囚徒之困 9460

Python自动化测试全套教程-第一天(python、pycharm开发环境的安装与配置(图文超级详细);附安装包)

本文介绍了Python开发环境的完整安装配置流程。主要内容包括:1) Python解释器的下载安装与版本检测方法;2) PyCharm IDE的下载安装步骤,包括专业版和社区版的选择;3) PyCharm的基础配置和项目创建方法;4) 开发环境的基本构造说明。文章提供了两种获取安装包的方式(官网下载和文章附件),并详细说明了解释器卸载、安装过程中的注意事项,以及如何验证环境配置成功。特别强调了PyCharm安装时的路径选择和虚拟环境的创建方法,为Python初学者提供了完整的开发环境搭建指南。

kiwi_king的博客 2035

springboot集成websocket的两种实现方式

WebSocket跟常规的http协议的区别和优缺点这里大概描述一下 一、websocket与http http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。http链接分为短链接,长链接,短链接是每次请求都要三次握手才能发送自己的信息。即每一个request对应一个response。长链接是在一定的期限内保持链接。保持TCP连接不断开。客...

huiyunfei的博客 8万+

卷积操作复杂度公式推导

复杂度Hout⋅Wout⋅Cout⋅Cin⋅k2\text{复杂度} = H_{\text{out}} \cdot W_{\text{out}} \cdot C_{\text{out}} \cdot C_{\text{in}} \cdot k^2复杂度Hout​⋅Wout​⋅Cout​⋅Cin​⋅k2该公式反映了卷积核作用于每个像素时的局部操作和跨通道的计算需求。卷积计算复杂度与输入尺寸线性相关。

qq_41037856的博客 1306

大疆Livox Mid-70雷达的使用

一、前期准备 (一)、使用Livox Viewer测试雷达 1、设置静态IP sudo ifconfig enx081f7152092a 192.168.1.50 查看IP是否设置成功 lacyexsale@lacyexsale-KLV-WX9:~$ ifconfig enx081f7152092a Link encap:以太网 硬件地址 08:1f:71:52:09:2a inet 地址:192.168.1.50 广播:192.168.1.255 掩码:255.255.25

LacyExsale的博客 1万+

spring boot学习第六篇:SpringBoot 集成WebSocket详解

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。

heming20122012的专栏 5623

手把手教你用CV5200模块搭建无人机高清图传系统(含实测数据)

本文提供了一份基于CV5200模块搭建远距离无人机高清图传系统的完整实战指南。文章详细解析了系统架构、硬件连接、软件配置与优化,并分享了实地飞行测试数据。核心在于利用CV5200的LR-WiFi私有协议,在视距下实现数公里级的稳定高清视频传输,为DIY爱好者和行业应用提供了高性价比的解决方案。

day7的博客 716

SpringBoot如何集成WebSocket

以上三种方式都可以在Spring Boot中集成WebSocket,选择哪种方式取决于具体的需求和项目的复杂度。对于简单的WebSocket应用,使用Javax.websocket原生注解或Spring封装的WebSocket已经足够;而对于需要更复杂消息传递和路由的应用,可以考虑使用Spring封装的STOMP协议。

fengjing81的专栏 1873

RK3588 平台部署实战:OpenCV + LibTorch + FFmpeg 环境搭建与深度学习推理全流程解析

现在,你已经掌握了在RK3588上搭建OpenCV+LibTorch+FFmpeg环境的完整流程,也完成了深度学习模型的部署测试。不妨从一个具体的应用场景入手(如检测自家宠物的品种),亲手打造属于你的第一个边缘智能应用——当你看到模型在RK3588上精准输出结果时,你会发现:嵌入式深度学习的门槛,其实并没有想象中那么高。这些依赖是编译OpenCV、FFmpeg的基础,安装过程中若提示权限不足,可在命令前加。若能输出预测的类别索引,则说明环境搭建成功,模型推理流程通畅。文件,实现模型加载、图像预处理与推理。

FJN110的博客 532

yocto系列讲解[实战篇]54 - 添加Qt5和生成带Qt5的SDK

为了满足读者盆友想看yocto如何添加qt5的需求,今天就开始尝试添加meta-qt5

fulinux的博客 3864

SpringBoot集成websocket

websocket

usa_washington的博客 1648

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SpringBoot集成WebSocket讲解

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工()通信——允许服务器主动发送信息给客户端,建立客户端和服务器之间的通信渠道。浏览器和服务器仅需一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

上善若泪 5569

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Spring Boot集成WebSocket

项目架构:传统MVC还是响应式性能需求:普通消息还是高频交易扩展性:是否需要水平扩展运维成本:监控和告警能力建议从Spring原生支持方案开始,随着业务复杂度提升再逐步考虑Netty等高性能方案。连接生命周期管理消息序列化规范异常恢复机制生产环境监控通过合理的设计和配置,WebSocket可以成为构建实时应用的强大工具。

我的博客 1173

一文了解WebSocket及Springboot集成WebSocket

🍊WebSocket与HTTP协议不同,它使用了独立的端口,并且在建立连接后,不需要在每次数据传输时重新建立连接。与 HTTP 通信不同的是,WebSocket 通信是基于TCP的,所以它是一个持久连接。如下图所示,发起一个websocket链接之后,请求和响应的参数里会有一些websocket相关的参数,该报文中有一个upgrade首部,它的作用是告诉服务端需要将通信协议切换到websocket。🍊WebSocket协议是一种全双工协议,它允许服务器主动发送信息给客户端,而不是等待客户端的请求。

龙飞的博客 4809

SpringBoot 集成WebSocket 的 3 种集成方式

由于前段时间我实现了一个库【Spring Cloud】一个配置注解实现 WebSocket 集群方案以至于我对WebSocket的各种集成方式做了一些研究,目前我所了解到的就是下面这些了(就一个破ws都有这么多花里胡哨的集成方式了?)JavaxWebMVCWebFluxJava-WebSocketSocketIONetty今天主要介绍一下前3种方式,毕竟现在的主流框架还是Spring Boot而后...

码猿技术专栏 1674

webSocket介绍与使用 spring boot 集成 websocket教程 java

WebSocket介绍与使用 java spring boot集成WebSocket教程

a360284634的博客 3973

【Spring Boot】WebSocket 的 6 种集成方式

由于前段时间我实现了一个库【Spring Cloud】一个配置注解实现 WebSocket 集群方案以至于我对的各种集成方式做了一些研究目前我所了解到的就是下面这些了(就一个破ws都有这么多花里胡哨的集成方式了?)今天主要介绍一下前3种方式,毕竟现在的主流框架还是而后3种其实和并不强行绑定,基于就可以支持,不过我也会对后3种做个简单的介绍,大家先混个眼熟就行了那么接下来我们就来讲讲前3种方式 在中的服务端和客户端配置(客户端配置也超重要的有木有,平时用不到,用到了却基本找不到文档,这也太绝望了)......

黑白法师的博客 6205

springboot集成Websocket

一、集成 二、demo

w_t_y_y的博客 1351
上一篇: git 进阶-配置多用户
下一篇: IDEA 中scala打包报错解决
阿雷由
博客等级 码龄10年 4850粉丝 116原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿雷由

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值