web应用从服务器主动推动数据到客户端的方式

html5 websocket

全双工交互
全双工通信:建立持久连接,服务端和客户端可随时互相发送消息
低延迟:适合实时应用(聊天、游戏、股票行情等)
socket协议是与HTTP协议平级的,websocket协议是建立在TCP协议之上的,默认端口是80和443,与HTTP协议兼容,可通过HTTP协议的升级机制来建立websocket连接

  • 工作原理:
    握手,客户端和服务器通过HTTP协议交换信息,以确认彼此支持websocket协议。
    握手成功后,就可在同一个TCP连接上进行数据的双向传输

支持文本和二进制数据的传输
没有同源限制,允许客户端与任何服务器通信,断线检测
new WebSocket(‘wss://example.om/scoket’).onMessage = (event) => { … }

websocket通过flash

HTTP长轮询(Long Polling)

最大兼容性
客户端发送请求,服务端保持连接直到有数据可发送,收到响应后,客户端立即发起新请求

优点:异步请求,客户端易实现错误处理系统和超时管理。实时性较好,能支持大量用户,断线检测

缺点:需服务器端有特殊功能临时挂起连接,但具有一定风险且失去了无状态高并发特点

HTTP流(HTTP streaming)

保持单个HTTP连接开发,服务器端通过同一连接持续发送数据,使用Transfer-Encoding:Chunked

不可见的iframe

不推荐
使用iframe加载一个隐藏网页,利用浏览器一边加载,一边解析执行返回的HTML,通过分次返回script标签来实现消息推送。创建长连接,但服务器开销大,且IE、chrome等浏览器会一直处于loading状态

优点:每次数据传送不会关闭连接,连接只会在通信出现错误时,或连接重建时关闭,断线检查,实时

可跨域

Server-Sent Event(SSE)

简单实时更新
单向通信:服务端向客户端推送,一次请求,N次推送
基于HTTP:比websocket更简单,自动重连

  • 工作原理
    服务器向客户端发送一个持久的连接,可以不断的向客户端发送数据。客户端可实时推送数据到前端,断线检测

支持自定义事件:服务器可发送带自定义事件类型的数据,客户端通过addEventListener监听这这些事件
支持文本数据:默认支持文本数据,如需二进制数据,要编码
兼容性较好,适用于实时通知,实时监控,实时数据展示等
new EventSource(‘/update’).onMessage = (event) => { … }
服务器端设置HTTP响应头,content-type:text/event-stream

短轮询

每个一段时间发起一个请求到后端询问是否有新信息,性能浪费较高

web worker

允许js在后台线程中运行脚本的技术,避免阻塞主线程。运行在与主页分离的环境中,不能直接操作DOM或访问window对象中某些方法和属性。
可用于实现实时通信,如聊天应用中的消息推送

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Spring Boot实现中医医学处方管理实践

基于Spring Boot实现中医医学处方管理 以下是基于Spring Boot实现中医医学处方管理的相关示例和资源整理,涵盖基础架构、功能模块及实际应用案例: 基础项目结构 Spring Boot中医处方系统通常采用MVC分层设计: 实体类:定义处方、药材、患者等JPA实体 @Entity public clas…

从“人工核验”到“智能鉴防”:护照鉴伪设备的科技革命

“一本伪造护照的查获成本从72小时降至3秒,背后是光学传感、量子加密与多模态AI的十年协同进化。”2025年全球边检口岸查获伪假护照近500份,其中芯片伪造占比首超40%。当造假技术逼近分子级仿制,传统肉眼鉴别彻底失效,多光谱成像、…

无人机飞控系统3D (C++)实践

大疆无人机飞控系统3D模型开发 大疆无人机飞控系统3D模型开发(C++) 核心架构设计 大疆无人机的飞控系统通常采用分层架构,分为硬件抽象层(HAL)、中间件层和应用层。HAL负责与传感器/执行器直接交互,中间件处理数据融合和通信协议,应用层实现核心控制算法。 典型代码结…

ES6中import与export的用法详解

目录 一、ES6模块化的核心概念 1. 模块化的基本规则 二、export的用法 1. 命名导出(Named Export) 示例: 2. 默认导出(Default Export) 示例: 默认导出函数或类: 3. 导出语句的统一声明…

硬核技术协同:x86 生态、机密计算与云原生等技术如何为产业数字化转型筑底赋能

在产业数字化转型的浪潮中,x86 生态构建、机密计算与 AI 融合、高性能网卡突破、云原生 OS 实践、国产数据库优化等技术领域的突破,正成为支撑数字化基础设施升级与业务创新的核心引擎。以下从技术深度与产业实践角度,系统性解析各领域的最新…

Java项目:基于SSM框架实现的网络财务管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本网络财务管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

1.5.Vue v-for 和 指令修饰符

vue v-for当你使用 v-for 指令来渲染列表时,为每个元素提供一个唯一的 key 属性是非常重要的。key 是用来给 Vue 一个提示,以便它能够追踪每个节点的身份,从而更高效地更新虚拟 DOM。key 的作用唯一标识:key 应该是每项数据的唯一…

(RedmiBook)上禁用触摸板或自带键盘

在红米笔记本(RedmiBook)上禁用触摸板或自带键盘,可以通过以下几种方法实现: 方法一:通过设备管理器禁用(Windows 系统) 禁用触摸板 打开设备管理器 按 Win X → 选择 “设备管理器”或 Win …

15 - 多模态大语言模型 — 图文 “牵线” 系统 “成长记”:借 CLIP 练本领,从图像与文字里精准 “搭鹊桥” 的全过程 (呆瓜版 - 2 号)

目录 1、基础:它到底是个啥? 1. 1、一句话理解核心 1.2、 为啥厉害? 1.3、怎么发展来的? 2、架构:它的 “身体构造” 是啥样的? 2.1、视觉语言模型架构:让 AI “看懂” 世界的核心系统 2…

Day 4-1: 机器学习算法全面总结

Day 4-1: 机器学习算法全面总结 📚 学习目标 通过前三天的学习,我们已经掌握了机器学习的基础知识和经典算法。今天我们来做一个全面总结,为进入深度学习阶段做好准备。 🎯 已掌握的核心算法总结 1. 监督学习算法 1.1 回归算法 算法 核心思想 适用场景 优缺点 线性回…

雨云深度体验:从安利到教程再到全面评测

零、简介在云服务市场竞争日益激烈的当下,各类云服务提供商如雨后春笋般涌现。然而,雨云却凭借其独特的优势,在这片红海之中逐渐崭露头角,吸引了众多个人开发者与企业用户的目光。接下来,就让我们全方位、深层次地从安…

luoguP13511 [KOI P13511 [KOI 2025 #1] 等腰直角三角形

P13511 [KOI 2025 #1] 等腰直角三角形 - 洛谷 题目重现 题目描述 在二维平面上有 N 个不同的点。对于每个 1≤i≤N 的 i,第 i 个点的坐标为 (xi​,yi​)。 等腰三角形是指三条边中有两条边长度相等的三角形。直角三角形是指一个内角为直角 (90∘) 的三角形。直角三角形的斜…

Qt Quick 动画与过渡效果

Qt Quick 提供了强大而灵活的动画系统,使开发者能够轻松创建流畅、引人入胜的用户界面。从简单的属性变化到复杂的多元素协同动画,Qt Quick 提供了多种实现方式。本文将深入解析 Qt Quick 动画与过渡效果的核心技术和最佳实践。 一、基础动画类型 1. 数字…

LlamaIndex 和 Elasticsearch Rerankers:无与伦比的简洁

作者:来自 Elastic Jeffrey Rengifo 了解如何从 LlamaIndex RankGPT reranker 迁移到 Elastic 内置的 semantic reranker。 Elasticsearch 拥有与行业领先的 Gen AI 工具和服务商的原生集成。查看我们的网络研讨会,了解如何突破 RAG 基础,或使…

服务器分布式的作用都有什么?

服务器分布式是通过网络互联的架构方式,将一个系统中的多台服务器进行连接并协同工作,把一个服务器中的任务分发到不同的服务器节点上,以此来提高系统的性能、可靠性和可扩展性,下面,我们就来具体了解一下服务器分布式…

cocos打包web - ios设备息屏及前后台切换音频播放问题

切换前台时,延迟暂停与恢复能解决大部分ios平台前后台切换后音频无法恢复的问题; if (cc.sys.isBrowser && cc.sys.os cc.sys.OS_IOS && cc.sys.isMobile) {cc.game.on(cc.game.EVENT_GAME_INITED, () > {cc.game.on(cc.game.EVENT_…

期货Level2五档委托簿0.25秒高频分钟与日级历史行情数据解析

在金融数据分析领域,本地CSV格式的期货数据为研究人员和交易者提供了丰富的原始信息。本文将介绍如何有效利用不同类型的期货数据,包括分钟数据、高频Tick、五档Level2等,并阐述数据处理与分析方法。一、数据概述期货分钟数据通常包含时间戳、…

原生html+js+jq+less 实现时间区间下拉弹窗选择器

html弹窗<div class"popupForm" id"popupForm10"><div class"pop-box"><i class"iconfont icon-quxiao cancel" onclick"toggleForm(10)"></i><div class"title">选择时间</div…

基于逻辑回归、随机森林、梯度提升树、XGBoost的广告点击预测模型的研究实现

文章目录有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主一、项目背景与目标二、数据概览与预处理2.1 数据导入与初步分析2.2 缺失值与重复值处理2.3 目标变量分布三、探索性数据分析&#xff08;EDA&#xff09;3.1 数值变量分布3.2 类别变量分布3…

Docker学习相关视频笔记(三)

参考视频地址&#xff1a;40分钟的Docker实战攻略&#xff0c;一期视频精通Docker。感谢作者的辛苦付出。 本文是Docker学习相关视频笔记&#xff08;一&#xff09;与Docker学习相关视频笔记&#xff08;二&#xff09;的后续 4、Docker命令 4.8 Docker 网络 4.8.1 桥接模式…