前端与后端长连接 方法

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、子协议支持同主机同端口上的多个服务、

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

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

相关文章

NAS端最强音乐库,多平台服务支持。海康存储部署『Navidrome』

NAS端最强音乐库,多平台服务支持。海康存储部署『Navidrome』 哈喽小伙伴们好,我是Stark-C~ 对于我们NAS用户,我们总是喜欢将自己喜欢的音乐资源通过下载的方式保存在本地,不过海康存储目前对因音乐的支持和管理实在过于薄弱&am…

【论文阅读笔记】Wavelet Convolutions for Large Receptive Fields

1.论文介绍 Wavelet Convolutions for Large Receptive Fields 大感受野的小波卷积 2024 EECV Paper Code 2.摘要 近年来,人们试图通过增加卷积神经网络(ConvolutionalNeuralNets,CNNs)的核尺寸来模拟视觉变换器(V…

2024年最新10款顶级项目管理软件排行

项目管理软件在现代项目管理中扮演着至关重要的角色,它不仅仅是一个工具,更是一种高效、系统化的方法来管理和优化项目流程,帮助项目经理和团队成员快速了解项目状态,加速项目进展。 进度猫 进度猫是一款以甘特图为向导的轻量级…

SAP ABAP开发学习——RFC

目录 RFC接口 定义 调用过程 RFC的通信 RFC通信情况 RFC接口系统 RFC的通信模式 RFC版本 RFC调用方式 Web Service接口 SAP创建Web Service示例 远程目标的维护 创建远程目标 外部系统访问设置 RFC的调用 RFC接口 定义 调用过程 RFC的通信 RFC通信情况 RFC接…

gps数据对接G7易流平台

之前伙伴对接G7物流平台获取温度、轨迹数据,写的一塌糊涂,今天来重新对接下。 G7易流 G7物联和易流科技合并后正式发布的品牌,主要面向生产制造与消费物流行业的货主及货运经营者提供软硬一体、全链贯通的SaaS服务。这包括订阅服务&#xff…

【网络】传输层协议TCP(下)

目录 四次挥手状态变化 流量控制 PSH标记位 URG标记位 滑动窗口 快重传 拥塞控制 延迟应答 mtu TCP异常情况 四次挥手状态变化 之前我们讲了四次挥手的具体过程以及为什么要进行四次挥手,下面是四次挥手的状态变化 那么我们下面可以来验证一下CLOSE_WAIT这…

高效新闻管理:SpringBoot框架应用

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理新闻稿件管理系统的相关信息成为必然。开发…

【已解决】C# NPOI如何设置单元格格式

前言 设置单元格格式我们做表格必须要的一步,那么如何对单元格进行设置呢?直接上图看看效果图先,我做的是一个居中然后字体变化的操作,其他的查他的手册即可。 解决方法 直接上代码 IWorkbook excelDoc new XSSFWorkbook();…

通过微调 Embedding 优化 RAG

大型语言模型 (LLM) 向用户和组织展示了巨大的潜力;它们的强大功能和生成能力使它们最近广受欢迎并被广泛接受。LLM 面临的一些缺点是无法以上下文感知的方式生成或响应用户给出的提示,听起来非常通用和开放,或者有时响应的信息已经过时。如果…

微信小程序生成二维码

目前是在开发小程序端 --> 微信小程序。然后接到需求:根据 form 表单填写内容生成二维码(第一版:表单目前需要客户进行自己输入,然后点击生成按钮实时生成二维码,不需要向后端请求,不存如数据库&#xf…

用接地气的例子趣谈 WWDC 24 全新的 Swift Testing 入门(二)

概述 从 WWDC 24 开始,苹果推出了全新的测试机制:Swift Testing。利用它我们可以大幅度简化之前“老态龙钟”的 XCTest 编码范式,并且使得单元测试更加灵动自由,更符合 Swift 语言的优雅品味。 在这里我们会和大家一起初涉并领略…

Python的自然语言生成与对话系统介绍

1. 背景介绍 自然语言生成(Natural Language Generation,NLG)和对话系统是人工智能领域的重要研究方向。NLG 涉及将计算机理解的信息转换为自然语言文本,而对话系统则涉及计算机与用户之间的自然语言交互。Python 作为一种易于学习、易于使用的编程语言…

HarmonyOS NEXT 应用开发实战(十、从零设计一款个人中心页面详细示例)

随着HarmonyOS的不断发展,越来越多的开发者开始关注这个平台上的应用开发。本篇文章将详细讲解如何从零开始设计一款个人中心页,并在代码中实现其相关功能。 1. 项目结构设计 首先,我们需要设计一个合理的项目结构。我们将个人中心页面分为几…

Node.js 入门指南:从零开始构建全栈应用

​🌈个人主页:前端青山 🔥系列专栏:node.js篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来node.js篇专栏内容:node.js-入门指南:从零开始构建全栈应用 前言 大家好,我是青山。作…

我们来学mysql -- 连接(原理版)

我们来学mysql -- 连接 题记两张表驱动表 题记 回到初学者的视角,navicat或命令窗口,呈现一行行数据,类比为excel工作薄更是深入人心通过join将多表的记录关联起来,这似乎也没啥问题只是好像是那么回事,又…似乎有想说…

ssm校园二手交易管理系统+vue

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码看文章最下面 需要定制看文章最下面 目 录 1 绪论 1 1.1 选题背景 1 1.2 选题意义 1 1.3 研究内容 2 2 系统开发技术 3 2.1 MySQL数…

2024年前三季度币安、OKX等五大交易所上币表现分析

随着加密市场竞争的加剧,头部交易所逐渐在上币策略、代币选择、交易活跃度等方面采取了不同的应对策略。Animoca Digital Research近期发布的一份报告,通过对币安、OKX、Bitget、KuCoin和Bybit五大交易所2024年前三季度的上币情况进行了详细分析。本文将…

Nature文章《deep learning》文章翻译

这篇文章是对Nature上《deep learning》文章的翻译。原作者 Yann LeCun, Yoshua Bengio& Geoffrey Hinton。 这篇文章的中心思想是深入探讨深度学习在机器学习中的革命性贡献,重点介绍其在特征学习、监督学习、无监督学习等方面的突破,并阐述其在图…

使用 RabbitMQ 有什么好处?

大家好,我是锋哥。今天分享关于【使用 RabbitMQ 有什么好处?】面试题。希望对大家有帮助; 使用 RabbitMQ 有什么好处? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RabbitMQ 是一种流行的开源消息代理,广…

Scrapy链接MongoDB数据库

本文章是在Scrapy入门-CSDN博客的基础上改写的代码。 1.声明采集目标 打开mySpider/mySpider1/items.py文件,修改MyspiderItem类为AIspiderItem: class AIspiderItem(scrapy.Item): title scrapy.Field() url scrapy.Field() date scrapy.Field() 2…