- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
SpringBoot3集成WebSocket的全过程
目录一、简介二、工程搭建1、工程结构2、依赖管理三、WebSocket用法1、示意图2、API参考四、总结
一、简介
WebSocket通过一个TCP连接在客户端和服务器之间建立一个全双工、双向的通信通道,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,在WebSocket的API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
【基于Postman工具的WebSocket交互】
Connectedtows://:8088/web/socket/msg
HandshakeDetails
RequestURL::8088/web/socket/msg
RequestMethod:GET
StatusCode:101
RequestHeaders
Sec-WebSocket-Version:13
Sec-WebSocket-Key:5Qrs8JeRLsiY9G/PRJUocQ==
Connection:Upgrade
Upgrade:websocket
Sec-WebSocket-Extensions:permessage-deflate;client_max_window_bits
Host::8088
ResponseHeaders
Upgrade:websocket
Connection:upgrade
Sec-WebSocket-Accept:E3aFw2bBzxByPCynmQ7lZ+7BgsU=
Sec-WebSocket-Extensions:permessage-deflate;client_max_window_bits=15
二、工程搭建
1、工程结构
2、依赖管理
在starter-websocket的依赖中,涉及到spring框架中两个关系较为密切的组件,分别是websocket和messaging组件。
!--WebSocket--
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-websocket/artifactId
version${spring-boot.version}/version
/dependency
三、WebSocket用法
1、示意图
在下面的案例中,大致模拟这样一个流程,三个客户端分别和服务端建立连接,然后进行客户端之间的会话通信。
2、API参考
这里通过4个核心的方法注解,分别处理会话的不同动作,比如连接的建立和关闭,通信交互和错误处理;在实际的应用场景中,需要在通信方法中设计更多的指令来应对不同的业务场景。
@ServerEndpoint(/web/socket/msg)
publicclassMsgWebSocket{
privatestaticfinalConcurrentHashMapString,Sessionsessions=newConcurrentHashMap();
privatestaticfinalAtomicIntegeronlineCount=newAtomicInteger(0);
*建立连接调用的方法
@OnOpen
publicvoidonOpen(Sessionsession){
StringuserId=session.getRequestParameterMap().get(userId).get(0);
//加入Set中
sessions.put(userId,session);
//在线数增加
onlineCount.getAndIncrement();
(session-{},online-count-{},session.getId(),onlineCount.get());
*客户端消息处理的方法
@OnMessage
publicvoidsendMsg(Sessionsender,Stringmessage)throwsException{
MsgDTOdto=JSONUtil.toBean(message,MsgDTO.class);
Sessionreceiver=sessions
您可能关注的文档
- 客服月度总结范文(25篇).docx
- 全民创业工作总结(16篇).docx
- 感恩节关于学会感恩的演讲稿(3篇).docx
- 家具购销合同(沙发)(29篇).docx
- 物业报修回访年终总结范文(3篇).docx
- 2025学校食品安全检查计划(30篇).docx
- 移动营业厅营业员工作总结(10篇).docx
- 教师演讲稿五分钟(素材7篇).docx
- 2025年一年级家长会演讲稿(29篇).docx
- 以诚信为主题的演讲稿500字(33篇).docx
- DB44_T 2607.4-2025 滨海蓝碳碳汇能力调查与核算技术指南 第4部分:盐沼.pdf
- DB43_T 3178-2024 烟叶农场建设管理要求.pdf
- DB37_T 4838-2025 含氢分布式综合能源系统运行优化指南.pdf
- DB37_T 4834-2025 高速公路集中养护工作指南.pdf
- DB44_T 2611-2025 城市排水管网有毒有害气体监测与风险分级管理技术标准.pdf
- DB44_T 2612-2025 竞赛类科普活动策划与实施服务规范.pdf
- DB43_T 2947-2024 烟草种子质量控制规程.pdf
- DB37_T 4836-2025 煤矿风量实时监测技术要求.pdf
- 叉车防撞系统,全球前22强生产商排名及市场份额(by QYResearch).docx
- 超滤膜,全球前18强生产商排名及市场份额(by QYResearch).docx
最近下载
- 文职技能岗工程机械维修试题.doc VIP
- 2024年江西·农商银行员工招聘真题.docx VIP
- 仪器名称:长春迪瑞 H-300 尿液分析仪型号: H-300.pdf VIP
- 2024年江西农商银行员工招聘真题.docx VIP
- 2023年广东工业大学软件工程专业《操作系统》科目期末试卷A(有答案).docx VIP
- 2024年江西·农商银行员工招聘笔试真题.docx VIP
- 人卫九版心血管PPT:第二章 心力衰竭.ppt
- 历年江西农商银行员工招聘笔试真题2024 .docx VIP
- 2024年江西•农商银行招聘真题.docx VIP
- 【人教版】四年级上册数学课件《平行与垂直》(共20张PPT).pptx
文档评论(0)