当前位置:首页 > 科技  > 软件

一图看懂四种接收实时数据更新的设计

来源: 责编: 时间:2023-11-28 17:12:30 231观看
导读今天来聊聊 4 种接收实时更新的方法,各有利弊,在设计中酌情选取。图片01 短轮询(Short Polling)这是最基本的方法。客户端会重复向服务器发送 HTTP 请求。我们来看一个使用场景:我们登录一个网站,看到一个二维码,然后我们可

今天来聊聊 4 种接收实时更新的方法,各有利弊,在设计中酌情选取。lEp28资讯网——每日最新资讯28at.com

图片图片lEp28资讯网——每日最新资讯28at.com

01 短轮询(Short Polling)

这是最基本的方法。客户端会重复向服务器发送 HTTP 请求。lEp28资讯网——每日最新资讯28at.com

我们来看一个使用场景:我们登录一个网站,看到一个二维码,然后我们可以用智能手机扫描二维码。这个二维码通常用于特定操作,如身份验证。应用程序并不知道我们扫描二维码的确切时间。因此,它会每隔 1-2 秒向服务器发送一次请求,以检查 QR 码的状态。一旦我们用智能手机扫描了二维码,服务器就会识别扫描,并响应应用程序的下一次检查,发回最新状态。这样,我们就能在扫描二维码后的 1-2 秒内得到响应。这种频繁的检查就是我们称这种方法为 "短轮询 "的原因。lEp28资讯网——每日最新资讯28at.com

这种方法有两个问题:lEp28资讯网——每日最新资讯28at.com

  1. 它会发送过多的 HTTP 请求。这会占用带宽,增加服务器负载。
  2. 在最糟糕的情况下,我们可能会等待长达 2 秒的响应,造成明显的延迟。

02 长轮询(Long Polling)

长轮询通过为 HTTP 请求设置更长的超时来解决短轮询问题。在上文的例子中,我们将超时时间调整为 30 秒。如果我们在这个时间范围内扫描二维码,服务器就会立即发送响应。这种方法大大减少了 HTTP 请求的数量。lEp28资讯网——每日最新资讯28at.com

尽管长时间轮询减少了请求数量,但每个开放的请求仍会与服务器保持连接。如果有很多客户端,就会对服务器资源造成压力。lEp28资讯网——每日最新资讯28at.com

03 WebSocket

短轮询和长轮询对于二维码扫描等较简单的任务都很有效。但对于复杂、数据量大、实时性强的任务(如在线游戏),则需要更高效的解决方案 – 这就是 WebSocket。lEp28资讯网——每日最新资讯28at.com

TCP 本身允许双向数据流,使客户端和服务器可以同时向对方发送数据。然而,建立在 TCP 基础上的 HTTP/1.1 并没有充分利用这一功能。在 HTTP/1.1 中,数据传输通常是按顺序进行的:一方发送数据,然后另一方发送数据。这种设计虽然足以满足网页交互的需要,但对于在线游戏等需要同步实时通信的应用来说,就显得力不从心了。WebSocket 是另一种基于 TCP 的协议,它允许客户端和服务器在单个连接上进行全双工通信,从而弥补了这一不足。lEp28资讯网——每日最新资讯28at.com

04 服务器发送事件(SSE,Server-Sent Events)

SSE 用于一些特殊的使用情况。当客户端建立 SSE 连接时,服务器会保持该连接开放以持续发送更新。这种设置非常适合服务器需要定期向客户端推送数据,而客户端只需接收数据,无需向服务器发送信息的情况。lEp28资讯网——每日最新资讯28at.com

一个典型的例子就是实时股票市场数据更新。有了 SSE,服务器就可以向客户端推送实时数据,而无需在每次更新时发出请求。值得注意的是,与 WebSockets 不同,SSE 不支持双向通信,因此不太适合需要来回通信的用例。lEp28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-34932-0.html一图看懂四种接收实时数据更新的设计

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 让你开发更舒适的 Tailwind 技巧

下一篇: 聊聊常见的限流算法有哪些?

标签:
  • 热门焦点
  • vivo TWS Air开箱体验:真轻 臻好听

    vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 帅气纯真少年!日本最帅初中生选美冠军出炉

    帅气纯真少年!日本最帅初中生选美冠军出炉

    日本第一帅哥初一生选美大赛冠军现已正式出炉,冠军是来自千叶县的宗田悠良。日本一直热衷于各种选美大赛,从“最美JK”起到“最美女星&r
  • Rust中的高吞吐量流处理

    Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • 如何正确使用:Has和:Nth-Last-Child

    如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java的NIO库提供了内存映射文件的支持,它可以将文件映射到内存中,从而可以更快地读取和写入文件数据。本文将对Java内存映射文件进行详细的介绍和演示。内存映射文件概述内存
  • 19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    今天这篇文章跟大家分享18个JS单行代码,你只需花几分钟时间,即可帮助您了解一些您可能不知道的 JS 知识,如果您已经知道了,就当作复习一下,古人云,温故而知新嘛。现在,我们就开始今
  • 从零到英雄:高并发与性能优化的神奇之旅

    从零到英雄:高并发与性能优化的神奇之旅

    作者 | 波哥审校 | 重楼作为公司的架构师或者程序员,你是否曾经为公司的系统在面对高并发和性能瓶颈时感到手足无措或者焦头烂额呢?笔者在出道那会为此是吃尽了苦头的,不过也得
  • 年轻人的“职场羞耻感”,无处不在

    年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • SN570 NVMe SSD固态硬盘 价格与性能兼具

    SN570 NVMe SSD固态硬盘 价格与性能兼具

    SN570 NVMe SSD固态硬盘是西部数据发布的最新一代WD Blue系列的固态硬盘,不仅闪存技术更为精进,性能也得到了进一步的跃升。WD Blue SN570 NVMe SSD的包装外
Top