websocket通信过程是怎么样的?

news/2024/11/29 6:42:17/

WebSocket是一种全双工通信协议,它在浏览器和服务器之间建立持久性的连接,实现实时的双向通信。下面是WebSocket通信的过程:

1:建立握手:

WebSocket通信的第一步是建立握手(handshake)连接。客户端发送一个HTTP请求,其中包含特殊的头部信息,表明客户端希望升级连接为WebSocket。服务器接收到该请求后,进行验证和协议升级的处理。

2:握手响应:

如果服务器验证成功并同意升级连接为WebSocket,它将返回一个HTTP 101状态码(Switching Protocols),表示握手成功。响应头中包含一些特殊的头部信息,如Upgrade和Connection字段,表明连接已成功升级为WebSocket。

3:数据传输:

建立握手后,WebSocket连接就成为一个持久性的双向通信通道。客户端和服务器都可以通过该连接发送和接收数据,而无需每次都发送新的HTTP请求。客户端和服务器可以直接发送文本或二进制数据,而不需要进行解析和序列化。

4:关闭连接:

当通信完成或需要关闭连接时,客户端或服务器可以发送一个特殊的关闭帧(close frame),表示关闭连接。在收到关闭帧后,另一方也会发送关闭帧,然后双方的连接就会关闭。

WebSocket通信过程中的数据传输是基于帧(frame)的,每个帧都包含一些控制信息和实际的数据内容。帧可以是文本帧(用于传输文本数据)或二进制帧(用于传输二进制数据)。


http://www.ppmy.cn/news/1216932.html

相关文章

阿里云全球故障凸显“云集中”风险

阿里云12日发生的全球性故障再次将“云集中风险”推上风口浪尖。这一公有云史上罕见的事件不仅影响了数以万计的企业和服务,也引发了对云服务集中化趋势的深刻反思。 2023年11月12日17:44(GMT8)开始,阿里云基础设施发生严重故障,导致阿里巴巴…

创建符合 Web 可访问性标准的 HTML 布局

人们常说网络可访问性是当今万维网的“必须”。“Web 可访问性”一词定义了开发人员需要遵循的一组准则,以使残障人士和 Web 应用程序的交互更加方便。任何网站的内容、UI/UX 设计和布局都应该易于访问。在本文中,Logicify团队为 HTML/CSS 开发人员提供了…

C#中数组、ArrayList与List对象的区别及使用场景

在C#编程中,数组、ArrayList和List对象是常用的数据结构和容器。它们在存储和管理数据方面都有各自的特点和用途。本文将深入探讨这三者的区别,并通过实际的代码示例来说明它们的使用场景和优缺点。 目录 1.数组特点使用场景 2.ArrayList特点使用场景 3.…

开讲:长江航道工程局举办首届云表无代码培训班

11月9日至10日,公司联合珠海乐图软件有限公司在总部机关举办了首届云表无代码编程开发初级培训班。公司所属单位工程、成本、财务等相关业务部门及项目部管理人员参加培训,公司总工程师张晏方作开班动员讲话。 张晏方指出,公司自主开发的云表…

ros 使用turtlesim包报错

ros 使用turtlesim包报错 rosrun] Couldn’t find executable named turtlesim_node below /opt/ros/noetic/share/turtlesim 先说一下前提,我的命名空间是demo03-ws,创建了一个功能包叫rename01_node,下面编写了一个launch文件,如下 希望…

云课五分钟-01课程在哪里-无需安装网页直达

此部分课程均为2015-2019年规划和设计,2020-2022年新版课程还在内测中。 现在想想当年还是很莽的,总想着一个网页云服务,把机器人相关不涉及硬件的课程全囊括。 无需安装个性定制即开即用随时随地云端复现…… 视频 云课五分钟-01课程在哪…

第六章:接口

系列文章目录 文章目录 系列文章目录前言一、接口二、实现接口与继承类三、接口的多态特性总结 前言 接口是更加抽象的类。 一、接口 usb插槽就是现实中的接口,厂家都遵守了统一的规定包括尺寸,排线等。这样的设计在java编程中也是大量存在的。 packa…

云课五分钟-02第一个代码复现-终端甜甜圈C++

前篇 云课五分钟-01课程在哪里-无需安装网页直达- 代码复现通过云课,会非常快捷。 视频 云课五分钟-02第一个代码复现-终端甜甜圈C 文本 如何使用g 使用g编译和链接C程序的基本步骤如下: 编写源代码:首先,你需要编写C源代码&…