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

WebSocket 的核心原理和工作流程

在这里插入图片描述

1. WebSocket 握手过程(协议升级)

客户端 服务器 发起 WebSocket 连接 HTTP GET /chat Headers: Connection: Upgrade Upgrade: websocket Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== HTTP 101 Switching Protocols Headers: Connection: Upgrade Upgrade: websocket Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= HTTP 400 Bad Request alt [服务器支持 WebSocket] [服务器不支持] TCP 连接保持打开 切换至 WebSocket 协议 客户端 服务器

2. WebSocket 数据传输流程

双向通信
1. 发起握手
2. 返回101响应
3. 发送数据帧
4. 推送数据帧
5. 实时消息
6. 实时推送
7. 关闭帧
8. 确认关闭
服务器
客户端

3. WebSocket 与 HTTP 对比

在这里插入图片描述

4. WebSocket 应用场景

在这里插入图片描述

关键说明:

  1. 握手阶段:通过 HTTP 协议升级建立连接
  2. 数据帧:轻量级二进制格式(最小仅2字节头部)
  3. 持久连接:单 TCP 通道维持所有通信
  4. 双工通道:客户端和服务器可同时发送数据
  5. 关闭流程:通过特殊控制帧优雅终止连接
http://www.lqws.cn/news/587701.html

相关文章:

  • 关于 java:8. Java 内存模型与 JVM 基础
  • 嵌入式原理与应用篇---常见基础知识(10)
  • 实战案例:使用C#实现高效MQTT消息发布系统
  • w-笔记:uni-app的H5平台和非H5平台的拍照识别功能:
  • Python 库 包 软件开发工具包(SDK) openai
  • AlpineLinux安装docker
  • STM32——DAP下载程序和程序调试
  • 初始化挂载Linux数据盘
  • Android 中 使用 ProgressBar 实现进度显示
  • Intel oneAPI工具集全面解析:从环境配置到流体动力学模拟优化
  • try-catch-finally 如何使用?
  • 《JMS 消息重试机制与死信队列配置指南:以 IBM MQ 与 TongLinkQ 为例》
  • 大模型在多发性硬化预测及治疗方案制定中的应用研究
  • 选择 PDF 转 HTML 转换器的 5 个关键特性
  • MySQL:CRUD操作
  • uniapp小程序蓝牙打印通用版(集成二维码打印)
  • 在vue当中使用动画
  • Oracle 树形统计再进阶:类型多样性与高频类型分析(第三课)
  • Monad:函数式编程中的 “容器模式”
  • 六自由度按摩机器人 MATLAB 仿真
  • Openssl升级
  • SQL规范
  • FastAPI 学习(二)
  • 在Flutter中生成App Bundle并上架Google Play
  • android BottomSheet及AlertDialog的几种material3 常见ui的用法
  • WSL/Linux 常用命令速查
  • Windows 11 安装 Linux 系统详细教程
  • docker安装RabbitMQ,创建RabbitMQ容器以及docker-compose.yml配置
  • 博图SCL编程:结构体(STRUCT)使用详解与实战案例
  • 英国研究团队启动合成完整人类基因组的前沿项目