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

Socket vs WebSocket

三个字母,本质上差了一整层协议栈

层级SocketWebSocket
所属层级传输层(TCP/UDP)应用层(HTTP之上)
连接方式直接建立 TCP/UDP 连接先通过 HTTP 握手,再升级为 WebSocket 连接
数据格式二进制字节流帧(Frame)结构,可是文本帧/二进制帧
通信方向默认是双向(TCP流)真正的全双工通信,浏览器可直接收发
典型端口TCP: 80/443/任意ws:// 用80,wss:// 用443
使用场景程序间通信、嵌入式、底层传输浏览器实时通信(IM、推送、视频)

Socket 是“机制”,WebSocket 是“协议”

1、Socket 是操作系统提供的 通信接口

它是“怎么通信”的底层通道。

举个例子:

// TCP Socket
int fd = socket(AF_INET, SOCK_STREAM, 0);
connect(fd, ...);
send(fd, buf, len, 0);
recv(fd, buf, len, 0);

这只是两端程序之间的字节流,谁都可以定义内容(比如你定义 JSON 协议、自定义命令)。


2、WebSocket 是建立在 HTTP 上的一种 应用层协议

它定义了“浏览器如何与服务器保持长连接”的标准做法。

握手过程(HTTP 请求头):

GET /chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: ...

服务器响应:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: ...

握手成功后,HTTP连接升级为 WebSocket 通道(TCP 长连接),之后就可以实时收发数据。


⚙️ 三、关系图一看就懂

浏览器 <---HTTP握手---> 服务器↓ 升级<=== WebSocket 全双工通道 ===>底层仍然是:TCP Socket → send()/recv()

也就是说:

WebSocket 本质上是用 HTTP 协商,然后在 TCP Socket 上跑自定义的帧格式。

场景

推荐协议

说明

C++ 程序 ↔ C++ 程序

原生 Socket (TCP/UDP)

性能高、自由度高

浏览器 ↔ 后端服务

WebSocket

兼容 Web 平台、可穿透防火墙

短期请求

HTTP/HTTPS

一次性通信(REST API)

长期实时通信

WebSocket

实时推送、消息同步

类比

Socket

WebSocket

比喻

电话线路

打电话的“约定规则”

你负责

拨号、接通、收发电流

用标准话语通话

特点

自由、裸数据

标准化、跨平台

Socket 是通信的“工具”
WebSocket 是一种基于 Socket 的“通信协议”
专为浏览器实时通信设计。

http://www.dtcms.com/a/581653.html

相关文章:

  • Java中BufferedImage转byte[]字节数组
  • day10 鹏哥C语言 操作符
  • 推广平台网站聊城网站建设推广
  • 政策东风下:卓玛儿童级健康腻子引领行业升级
  • Azure Storage Discovery(国际版)正式发布
  • 4、prometheus-服务发现k8s api-2
  • 立冬节气科学调养身心
  • 安徽省建设行业质量与安全协会网站网站建设拓客有什么方法
  • 【XR开发系列】2025 年 XR 开发入门,我该选择 Unity 还是 Unreal Engine?
  • 在wps软件的word中使用js宏命令设置表格背景色
  • 怎样写网站文案零食网站建设前的市场分析
  • 环保网站建设的主题七牛部署WordPress
  • (八)嵌入式面试题收集:8道
  • 【App开发】04:Android Studio第一个项目之页面开发
  • Client port found: 2181. Client address: localhost. Client SSL: false.
  • 用ffmpeg来压缩视频文件
  • ABAP+在select的时候,可以A=B A=C B=C这样子JOIN吗?
  • 网站概要设计模板做网站体会心得
  • 零基础入门C语言之C语言实现数据结构之顺序表
  • Nine.fun携MasterPay共建Web3现实支付桥梁
  • 图像处理中的暗场校正
  • WPS Office国际版 办公软件v18.20.2完美去广解锁高级版
  • Fake LLM in LangChain (one)
  • 文案写作网站网站策划需要具备什么
  • JavaSE知识分享——Object类小结
  • GitHub 热榜项目 - 日榜(2025-11-07)
  • 数字人技术:虚实交融的未来图景正在展开
  • 网站301检测烟台网站建设找企汇互联专业
  • TCP 的三次握手和四次挥手
  • 多平台视频下载工具的实现原理与技术实践, 免费下载视频下载工具