【简单讲解下WebSocket】

在这里插入图片描述

🌈个人主页:程序员不想敲代码啊
🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家
👍点赞⭐评论⭐收藏
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

WebSocket

🔮WebSocket 是一种网络通信协议,它提供了浏览器(如Web客户端)和服务器之间的全双工通信渠道,这意味着数据可以同时双向传输,使得数据可以快速地来回传递。WebSocket 是为了应对传统的HTTP协议在实时通信方面的不足而设计的。

🔮具体来说,WebSocket 协议在客户端(通常是浏览器)与服务器之间建立一个持久的,长时间打开的连接。这种连接一旦建立,客户端和服务器就可以通过这个连接发送实时数据。与HTTP请求-应答模型相比,WebSocket减少了通信的时间延迟,因为不需要为每条消息重建TCP连接。

⛰️WebSocket 协议的工作流程如下:

  1. 🌊握手: 客户端通过发送一个特殊的HTTP请求开始握手过程。这个HTTP请求包括一个"Upgrade"头部,表明客户端想要升级连接到WebSocket。

  2. 🌊服务器响应: 如果服务器支持WebSocket协议,它会回复一个HTTP响应,同样带有"Upgrade"头部,并且状态码101,表示协议切换。

  3. 🌊连接建立: 一旦客户端和服务器完成握手,一个WebSocket连接就被建立,它们可以开始通过这个通道交换数据。

  4. 🌊数据帧: 数据在WebSocket协议中通过帧的形式来传输。WebSocket协议定义了多种帧类型,包括表示的是文本、二进制数据、连接关闭等。

  5. 🌊保持连接: WebSocket 连接会保持活跃直到一方显式地关闭连接,不像HTTP协议那样在每次请求响应后断开连接。

⛰️WebSocket 协议具有以下几个关键特点:

  • 👉低延迟: WebSocket 提供了低延迟的数据传输,这对于实时应用来说非常关键。
  • 👉减少开销: 减少了通信过程中的HTTP头部信息的额外开销,尤其是在频繁通信时。
  • 👉全双工: WebSocket 允许全双工通信,即客户端和服务器可以同时向对方发送消息。
  • 👉后向兼容: WebSocket 开始于HTTP握手,这使其能在现有的Web基础上作为升级来工作,同时也容易被各种防火墙和代理服务器接受。

WebSocket 协议在实时游戏、聊天应用、实时数据传输等领域得到了广泛使用。它是现代网页应用中实现实时双向通信的关键技术之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/516260.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【DA-CLIP】test.py解读,调用DA-CLIP和IRSDE模型复原计算复原图与GT图SSIM、PSNR、LPIPS

文件路径daclip-uir-main/universal-image-restoration/config/daclip-sde/test.py 代码有部分修改 导包 import argparse import logging import os.path import sys import time from collections import OrderedDict import torchvision.utils as tvutilsimport numpy as…

ruoyi-nbcio-plus基于vue3的flowable流程元素选择区面板的升级修改

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

工业项目中你连SCADA都没见过?

什么是SCADA SCADA是一种监控和数据采集系统,全称是Supervisor.Contro.an.Dat.Acquisition。SCADA系统在工业项目中具有广泛应用,包括生产线监控、工艺控制、设备维护、能源管理、安全监控和产量跟踪等多个场景。通过实时监测、数据采集和远程控制等功能…

网络协议栈--数据链路层

目录 对比理解“数据链路层”和“网络层”一、认识以太网1.1 以太网帧格式1.2 认识MAC地址1.3 对比理解MAC地址和IP地址1.4 认识MTU1.5 MTU对IP协议的影响1.6 MTU对UDP协议的影响1.7 MTU对于TCP协议的影响1.8 查看硬件地址和MTU 二、ARP协议2.1 ARP协议的作用2.2 ARP协议的工作…

15、Scalable Diffusion Models with Transformers

简介 官网 DiT(Diffusuion Transformer)将扩散模型的 UNet backbone 换成 Transformer,并且发现通过增加 Transformer 的深度/宽度或增加输入令牌数量,具有较高 Gflops 的 DiT 始终具有较低的 FID(~2.27)…

springJPA如果利用注解的方式 进行多表关联操作

前言:上一篇我写了个用JPA的Specification这个接口怎么做条件查询并且进行分页的,想学的自己去找一下 地址:springJPA动态分页 今天我们来写个 利用jpa的Query注解实现多表联合查询的demo 注意: 不建议在实际项目中用这玩意. 因为: 1. 用Query写的sql 可读性极差,给后期维护这…

六角螺母缺陷分类数据集:3440张图像

六角螺母缺陷数据集:包含变形,划痕,断裂,生锈,以及优质螺母图片数据,共计3440张,无标注 一.变形螺母-1839 二.断裂螺母-287 三.划痕螺母-473 四.生锈螺母-529 五.优良螺母-312 适用于CV项目&am…

法律行业案例法模型出现,OPenAI公布与法律AI公司Harvey合作案例

Harvey与OpenAl合作,为法律专业人士构建了一个定制训练的案例法模型。该模型是具有复杂推理广泛领域知识以及超越单一模型调用能力的任务的AI系统,如起草法律文件、回答复杂诉讼场景问题以及识别数百份合同之间的重大差异。 Harvey公司由具有反垄断和证…

阿里云服务器199元一年,ECS u1实例性能测评

阿里云服务器ECS u1实例,2核4G,5M固定带宽,80G ESSD Entry盘优惠价格199元一年,性能很不错,CPU采用Intel Xeon Platinum可扩展处理器,购买限制条件为企业客户专享,实名认证信息是企业用户即可&a…

树莓派部署yolov5实现目标检测(ubuntu22.04.3)

最近两天搞了一下树莓派部署yolov5,有点难搞(这个东西有点老,版本冲突有些包废弃了等等) 最后换到ubuntu系统弄了,下面是我的整体步骤: 1.烧完ubuntu镜像后,接显示器按系统流程进行系统部署(大于…

win10+Intel显卡安装配置stable-diffusion-webui绘画网页

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)

精准扶贫管理系统目录 目录 基于Springboot的精准扶贫管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 (1)用户信息管理 (2)贫困户信息管理 (3)新闻类型管理 &a…

openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint

文章目录 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint256.1 功能描述256.2 语法格式256.3 参数说明 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint 256.1 功能描述 设置本次查询执行内生效的…

程序员沟通之道:TCP与UDP之辩,窥见有效沟通的重要性(day19)

程序员沟通的重要性: 今天被师父骂了一顿,说我不及时回复他,连最起码的有效沟通都做不到怎么当好一个程序员,想想还挺有道理,程序员需要知道用户到底有哪些需求,用户与程序员之间的有效沟通就起到了关键性作…

图DP

目录 有向无环图DP 力扣 329. 矩阵中的最长递增路径 力扣 2192. 有向无环图中一个节点的所有祖先 有向有环图DP 力扣 1306. 跳跃游戏 III 有向无环图DP 力扣 329. 矩阵中的最长递增路径 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对…

Golang | Leetcode Golang题解之第3题无重复字符的最长子串

题目: 题解: func lengthOfLongestSubstring(s string) int {// 哈希集合,记录每个字符是否出现过m : map[byte]int{}n : len(s)// 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动r…

50道Java经典面试题总结

1、那么请谈谈 AQS 框架是怎么回事儿? (1)AQS 是 AbstractQueuedSynchronizer 的缩写,它提供了一个 FIFO 队列,可以看成是一个实现同步锁的核心组件。 AQS 是一个抽象类,主要通过继承的方式来使用&#x…

Linux系统——网络管理

此文章以红帽Linux9版本为例进行讲解。 红帽Linux9版本的网络管理十分全面,可在多处进行网络配置的修改,但需要注意的是,在9版本内,用户可在配置文件内进行网络配置的修改,但系统不会执行修改的命令,而在9之…

C语言中的结构体:高级特性与扩展应用

前言 结构体在C语言中的应用不仅限于基本的定义和使用,还包含一些高级特性和扩展应用,这些特性和应用使得结构体在编程中发挥着更加重要的作用。 一、位字段(Bit-fields) 在结构体中,我们可以使用位字段来定义成员…

小林coding图解计算机网络|基础篇01|TCP/IP网络模型有哪几层?

小林coding网站通道:入口 本篇文章摘抄应付面试的重点内容,详细内容还请移步: 文章目录 应用层(Application Layer)传输层(Transport Layer)TCP段(TCP Segment) 网络层(Internet Layer)IP协议的寻址能力IP协议的路由能力 数据链路层(Link Lay…