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

websocket是什么?

一、定义

Websocket是一种在单个TCP连接上进行全双工通信的协议,它允许服务器主动向客户端推送数据,而不需要客户端不断的轮询服务器来获取数据

与http协议不同,http是一种无状态的,请求,响应模式的协议(单向通信),而websocket在建立连接后可以保持连接状态,实现双向通信

工作原理

建立连接,客户端向服务端发送一个http请求,请求包含Upgrade:websocket和connection:Upgrade字段,表示希望协议升级为websocket

如果服务器支持websocket,它会返回一个101Switchng Protocols的响应,然后双方就可以通过websocket协议进行通信了

二、在前端的应用

  1. 实时数据更新
    • 聊天应用:可以实现即时信息的发送和接受,无需不断的向服务器发请求来检查是否有新消息
    • 股票行情,体育赛事比分等实时数据的推送:服务器可以在数据发生变化时立即将新数据推送给客户端,用户可以及时看到最新消息
  2. 减少网络开销 
  3. 由于不需要轮询那样频繁的发送http请求,减少网络带宽的占用和服务器的负载,例如,在一个实时监控系统中,使用websocket可以在有新事件发生时才进行数据传输,而不是每隔几秒就发送一次请求来检查是否有新事件

三、前端实现

  1. 使用原生 JavaScript
    • 浏览器提供了WebSocket对象来实现 Websocket 通信。例如:
    • 使用框架和库
      • 一些前端框架和库也提供了对 Websocket 的支持,例如 Vue.js 和 React.js 可以通过第三方库(如socket.io-client)来简化 Websocket 的使用。

http://www.lryc.cn/news/491556.html

相关文章:

  • Java项目实战II基于微信小程序的图书馆自习室座位预约平台(开发文档+数据库+源码)
  • 5.算法移植第六篇YOLOV5 /onnx模型转换成rknn
  • 微知-DOCA SDK中如何编译一个sample?如何运行?(meson /tmp/xxx; meson compile -C /tmp/xxx)
  • 【Leetcode 每日一题】146. LRU 缓存(c++)
  • 【机器学习】近似分布的熵到底是p(x)lnq(x)还是q(x)lnq(x)?
  • 网络安全,文明上网(6)网安相关法律
  • 网络安全学习74天(记录)
  • Spring Boot 实战:基于 Validation 注解实现分层数据校验与校验异常拦截器统一返回处理
  • 20241125复盘日记
  • 【Excel】拆分多个sheet,为单一表格
  • 类和对象plus版
  • shell练习
  • ApiChain 从迭代到项目 接口调试到文档生成单元测试一体化工具
  • Vercel 设置自动部署 GitHub 项目
  • SQL进阶:如何跳过多个NULL值取第一个非NULL值?
  • laravel 5.5 增加宏指令 joinSub, 省去->toSql() 和 addBinding($bindings);
  • 远程控制软件:探究云计算和人工智能的融合
  • 网络协议之DNS
  • .net6 使用 FreeSpire.XLS 实现 excel 转 pdf - docker 部署
  • QML学习 —— 28、3种等待指示控件(附源码)
  • flutter 专题十一 Fair原理篇Fair逻辑动态化架构设计与实现
  • 利用开源图床的技巧与实践
  • C++数据结构与算法
  • Paddle Inference部署推理(三)
  • python(四)os模块、sys模块
  • Oracle 数据库 IDENTITY 列
  • 【前端】js vue 屏蔽BackSpace键删除键导致页面后退的方法
  • 深入解密 K 均值聚类:从理论基础到 Python 实践
  • ArcGIS应用指南:ArcGIS制作局部放大地图
  • 非root用户安装CUDA