网站地图
RSS订阅
TAGS标签
首页
技术
技术杂谈
鸿蒙
软件
留言
您的位置:
首页
>
技术
>
java语言
> 正文
WebSocket通信原理和在Tomcat中实现源码详解(万字爆肝)
2021-09-02 08:00
管理员
次阅读
条评论
首发CSDN:徐同学呀,原创不易,转载请注明源链接。我是徐同学,用心输出高质量文章,希望对你有所帮助。 本篇基于Tomcat10.0.6。建议收藏起来慢慢看。
文章目录
一、前言
二、什么是WebSocket
1、HTTP/1.1的缺陷
2、WebSocket发展历史
(1)背景
(2)历史
3、WebSocket握手和双向通信
(1)定义
(2)握手(建立连接)
(3)消息帧
(4)挥手(关闭连接)
4、WebSocket优点
三、Java API for WebSocket(JSR356)
1、服务端API
(1)注解方式@ServerEndpoint
(2)继承抽象类Endpoint
2、客户端API
3、上下文Session
4、HandshakeRequest 和 HandshakeResponse
(1)HandshakeRequest
(2)HandshakeResponse
5、WebSocketContainer
四、WebSocket基于Tomcat应用
1、服务器端实现
(1)@ServerEndpoint注解方式
(2)继承抽象类Endpoint方式
(3)早期Tomcat7中Server端实现对比
2、客户端实现
(1)前端js版
(2)@ClientEndpoint注解方式
(3)继承抽象类Endpoint方式
3、基于Nginx反向代理注意事项
五、WebSocket在Tomcat中的源码实现
1、WsSci初始化
(1)WsSci#onStartup
(2)WsServerContainer#addEndpoint
(3)PojoMethodMapping方法映射和形参解析
2、协议升级(握手)
(1)WsFilter
(2)UpgradeUtil#doUpgrade
(3)Request#upgrade
(4)回调机制ActionHook#action
(5)ConnectionHandler#process
(6)WsHttpUpgradeHandler#init握手成功
3、数据传输和解析
(1)接收客户端消息
(2)发送消息给客户端
六、要点回顾
七、参考文献
0
人
感动
0
人
路过
0
人
高兴
0
人
难过
0
人
搞笑
0
人
无聊
0
人
愤怒
0
人
同情
上一条:
从 JVM 层面理解 i++ 和 ++i 的真正区别!
2021-09-01
下一条:
☕【JVM技术指南】「难点-核心-遗漏」TLAB内存分配+锁的碰撞(技术串烧)!
2021-09-02
相关文章
如何使用Tomcat实现WebSocket即时通讯服务服务端
2022-05-10
万字详解云计算中的云网络技术
2023-08-25
万字解析XML配置映射为BeanDefinition的源码
2023-11-14
【万字长文】Apache ShenYu集成Apache RocketMQ实现海量日志采集的原理与实践
2022-03-11
2022年度总结 | 这一年,LigaAI写了10万字
2023-01-06
热度排行
1
什么是大模型?超大模型?Foundation...
2
Flutter 疑难杂症系列:实现中文文本...
3
【架构笔记】Android 内存泄漏知识点...
4
【高手问答汇总】——聊聊 Apache Do...
5
使用Hutool在Java中实现FPE(Format ...
6
一文彻底弄清4G/蓝牙/WiFi/TCP/IP之...
7
保姆级教程!将 Vim 打造一个 IDE (...
8
Flink企业级优化全面总结(3万字长文...
9
抖音短视频网络性能优化实践
10
从周易六十四卦看软件架构真好懂!女...
java语言
实战干货|Spark ...
什么是IPD项目管...
2024 Postgres Conf
你唯一需要的是“Wi
ES 数据写入方式:直
7个prompt小技巧,
实践探讨Python如何
提示词优化的自动化
专题
HarmonyOS
OpenHarmony是开放原子开源基金会(OpenAtom Foundation)旗下开源...
[详细]
IntelliJ IDEA 2021.2 EAP 4 发布
ShardingSphere 5.0.0-beta
MongoDB 4.4 主要新特性解读
Spring Boot 2.5.0-M1 发布
友情链接
粤ICP备2021091832号