首页 > 其他分享 >WebSocket学习

WebSocket学习

时间:2024-03-29 15:34:57浏览次数:20  
标签:WebSocket 请求 实时 学习 保持 连接 客户端

WebSocket 是什么?

是一种协议,设计用于提供低延迟、全双工和长期运行的连接

什么是全双工?

通信的两个参与方可以同时发送和接收数据,不需要等待对方的响应或传输完成

WebSocket 的作用是?

实现实时通信

在WebSocket之前都用什么技术来模拟实现实时通信?

  1. 轮询 定期向服务器发送请求
  2. 长轮询 在客户端发送请求后,保持连接打开,等待新数据响应后再关闭连接
  3. Comet 保持长连接,在放回请求后继续保持连接打开

WebSocket的优势有哪些?

  1. WebSocket允许在单个、长时间的连接上进行双向实时通信。在需要快速实时更新的应用程序里,HTTP更高效
  2. WebSocket中,链接一旦建立,便会保持开放,数据可以在客户端和服务器之间以比HTTP更低的延迟进行传输
  3. WebSocket可以减少重复请求和响应的开销,因为它的连接只需要建立一次

实现步骤:

  1. 前端方面(.html中)
    指定一个WebSocket服务器地址 接着实现WebSocket的监听事件
    image

  2. 后端方面(使用node.js)
    image

WebSocket的心跳机制

为了保持WebSocket稳定的长连接,在连接建立之后,服务器和客户端之间通过心跳包来保持连接状态,以防止连接因为长时间没有数据传输而切断

WebSocket的限制

  1. 不提供加密功能
    如果安全上有需求,需要采用其他方式来确保安全性,如:SSL协议,设置黑白名单
  2. 优化很重要
    当WebSocket连接过多时,会对服务器的性能造成负面影响,由于要保持长连接,需要不断地维护和处理连接状态

标签:WebSocket,请求,实时,学习,保持,连接,客户端
From: https://www.cnblogs.com/guolongzyt/p/18103896

相关文章

  • 鼠鼠的拍照学习笔记
    拍照学习笔记参考:构图——【8分钟学会全部构图技巧!想拍照好看必学的19种构图方法!手机相机拍照通用!】一、关于构图1.1基本方法中心构图——将主题放在画面中心,最常见。主体明确突出。对称构图——上下或左右对称。水平线构图——让画面中的水平线(横线)保持......
  • JAVA学习-网络编程.使用代理服务器
           代理服务器在网络编程中扮演着重要的角色,它可以作为中间层来处理网络请求和响应,提供更高级的功能。Java网络编程提供了多种方式来使用代理服务器,包括使用'Proxy'类和使用'ProxySelector'类。下面是关于使用代理服务器的概述以及与其他比较和高级应用的说明:1.......
  • JavaWeb学习笔记——第八天
    MySQL(三)多表查询多表查询指从多张表中查询数据。可以直接使用指令select*from表1,表2;来同时查询表1和表2的数据,但此时会出现笛卡尔积的情况。笛卡尔乘积是指在数学中,两个集合(A集合和B集合)的所有组合情况。(在多表查询时,需要消除无效的笛卡尔积)使用指令select*fr......
  • MySQL单表操作学习DDL_DML_DQL语句,以及模糊查询
    1.DDL语句CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`creatDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyi......
  • 学习新建查询
    1、创建数据表——DDL语句CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'姓名',`pwd`varchar(36)DEFAULT......
  • Python学习的十个阶段:学完即可神功大成,看看你在哪个阶段
    今天给大家整理了Python学习的十个阶段内容,看看你现在正处于哪个阶段,想学习的朋友也可以根据这个阶段规划学习。阶段一:Python基础【初入江湖】Linux基础目标:1、熟练使用Linux系统进行开发活动2、掌握Linux下编辑器的使用内容:Python开发环境搭建和学习方法介绍认识......
  • 前端学习-UI框架学习-Bootstrap5-012-进度条
    菜鸟教程链接创建一个基本的进度条的步骤如下:添加一个带有.progress类的。接着,在上面的内,添加一个带有class.progress-bar的空的。添加一个带有百分比表示的宽度的style属性,例如style="width:70%"表示进度条在70%的位置。注意:我发现如果这个contianer里面不放......
  • Hybrid-PSC:基于对比学习的混合网络,解决长尾图片分类 | CVPR 2021
     论文提出新颖的混合网络用于解决长尾图片分类问题,该网络由用于图像特征学习的对比学习分支和用于分类器学习的交叉熵分支组成,在训练过程逐步将训练权重调整至分类器学习,达到更好的特征得出更好的分类器的思想。另外,为了节省内存消耗,论文提出原型有监督对比学习。从实验结果来看......
  • 【LAMMPS学习】五、LAMMPS命令(8) Pair_style 势
     5.命令 本部分描述了LAMMPS输入脚本的格式以及其中的命令如何用于定义LAMMPS模拟。主要包括以下内容。5.1.LAMMPS输入脚本5.2.输入脚本的解析规则5.3.输入脚本结构5.4.按类别划分的命令5.5.通用命令5.6.Fix命令5.7.compute命令5.8.Pair_style势所有LAMMP......
  • 【LAMMPS学习】五、LAMMPS命令(9-12) (Bond\Angle\Dihedral\Improper)势
    5.命令 本部分描述了LAMMPS输入脚本的格式以及其中的命令如何用于定义LAMMPS模拟。主要包括以下内容。5.1.LAMMPS输入脚本5.2.输入脚本的解析规则5.3.输入脚本结构5.4.按类别划分的命令5.5.通用命令5.6.Fix命令5.7.compute命令5.8.Pair_style势5.9.Bond_st......