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

前端与后端长连接 方法

1、SSE

一、SSE的主要特点

  1. 单向通信​:SSE是服务器向客户端的单向通信,客户端不能直接通过SSE向服务器发送消息。
  2. 文本数据流​:SSE传输的主要是文本数据(通常是JSON格式),不适合二进制数据。
  3. 自动重连​:SSE具有自动重连机制,当连接中断时,浏览器会自动尝试重新连接。
  4. 事件分发​:SSE支持自定义事件类型,可以在数据流中发送不同类型的事件。

二、优缺点

1、优点:

  • 实时性强:适合需要实时数据更新的场景。
  • 简单易用:API简单,容易实现。

2、缺点:

  • 单向通信:仅支持服务器向客户端推送数据,客户端无法直接向服务器发送消息。
  • 兼容性:部分旧浏览器不支持SSE。
  • 性能:对于大量客户端连接的场景,可能需要优化服务器的性能。

总之,SSE是一种轻量级、易于实现的实时数据推送技术,适用于多种实时应用场景。

2、WebSocket

一、什么是websocket
WebSocket该协议在规范RFC 6455中进行了描述,它提供了一种通过持久连接在浏览器和服务器之间交换数据的方法。数据可以作为“数据包”双向传递,而无需中断连接或发出额外的 HTTP 请求。

为啥不用HTTP1.1 呢,HTTP1.1的双向通信只能通过轮询,会浪费很多网络资源,因为每次都需要tcp的三次握手以及四次挥手。而且HTTP1.1不能从server到client 进行消息推送,消息的实时性得不到保证。

二、websocket 的用途
WebSocket 特别适合需要连续数据交换的服务。例如,网络游戏和实时交易系统。

WebSocket 在网络会议里有广泛应用:可以用作网络会议前检查人数的计数器或者用作会议期间发送材料和文件的平台,会议期间的发言内容

三、websocket 特点
双向通信:优劣,优点是消息的实时性,缺点是伸缩性非常差比如增加服务器

管理会话:双向关闭会话

维持长链接:websocket 是通过ping,pong 发心跳维持长链接而.http1.1 是通过keeplive

兼容HTTP协议:端口复用 ws 是80端口,wss 是443 端口

支持扩展:如per message-deflate 扩展

Http 协议头部存放元数据,websocket 传输的应用层存放元数据

是基于帧而不是基于流(HTTP,TCP)每一帧要么承载字符数据要么承载二进制数据

基于浏览器的同源策略模型(非浏览器无效)可以使用Access-Control-Allow-Origin 等头部

基于URI、子协议支持同主机同端口上的多个服务、

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

相关文章:

  • 建议AI产品经理面试准备到这个程度再去
  • 智能交通的未来:深度学习如何改变车辆检测游戏规则
  • 家具制造的效率与美观并重,玛哈特矫平机让家具产品更具竞争力。
  • 交叉编译gcc
  • [VUE]框架网页开发1 本地开发环境安装
  • 【MySQL】——数据库恢复技术
  • 乡村景区一体化系统(门票,餐饮,便利店,果园,娱乐,停车收费
  • 从零开始的c++之旅——继承
  • 电路知识的回顾
  • 使用 `Celery` 配合 `RabbitMQ` 作为消息代理,实现异步任务的调度、重试、定时任务以及错误监控等功能
  • react-router与react-router-dom的区别
  • 【研究生必看】把选题和文献交给AI,轻松搞定毕业论文!
  • Android中同步屏障(Sync Barrier)介绍
  • 真·香!深度体验 zCloud 数据库云管平台 -- DBA日常管理篇
  • 优雅的遍历JSONArray,获取里面的数据
  • C#:强大而优雅的编程语言
  • 一个由Deno和React驱动的静态网站生成器
  • Python pyautogui库:自动化操作的强大工具
  • 【HTML】——VSCode 基本使用入门和常见操作
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(八)SpringBoot 使用Redis
  • Ubuntu20.04两种安装及配置中文界面、输入法、换源、共享文件夹实现,及注意事项
  • 后端Java学习:springboot之文件上传(阿里云OSS存储)
  • python通过lunarcalendar库使用农历日期
  • MySQL高级--范式与反范式
  • 实验05多重循环---7-02 打印矩形图案
  • 明源地产ERP WFWebService.asmx 反序列化RCE漏洞复现
  • 学习笔记:黑马程序员JavaWeb开发教程(2024.11.4)
  • 开源自托管数据管理工具全面指南
  • 护工系统|护工陪护软件|护工系统设计
  • 电商领域软件系统实战:基于TiDB的分布式数据库应用