前端与后端长连接 方法

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

相关推荐
Liquor14191 小时前
JavaScript知识点梳理及案例实践
开发语言·前端·javascript·python·css3·html5·js
空白诗3 小时前
HTML 基础概念:什么是 HTML ? HTML 的构成 与 HTML 基本文档结构
前端·html
漫天转悠5 小时前
Uniapp在Vue环境中引入iconfont图标库(详细教程)
前端·vue.js·uniapp
二狗mao5 小时前
Uniapp的学习
前端·vue.js·uni-app
334554327 小时前
element表格双击修改时间
开发语言·前端·javascript
想退休的搬砖人7 小时前
axios请求中的data和params的区别
前端
前端李易安7 小时前
如何封装一个axios,封装axios有哪些好处
前端·vue.js·axios
sky.fly8 小时前
HTML5+css3(伪类,动态伪类,结构伪类,否定伪类,UI伪类,语言伪类,link,hover,active,visited,focus)
开发语言·前端·css3·html5
沈询-阿里8 小时前
spring ai 入门 之 结构化输出 - 把大模型llm返回的内容转换成java bean
前端·javascript·easyui
ormcc9 小时前
layui tree customSelet选中的内容重写,查找父级
前端·javascript·layui·tree·customselect