热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实时更新如何工作?-Howdorealtimeupdateswork?

Nowadaysrealtimeupdatesarecommoninmostpopularsiteswhichhaveheavyusages.现在,在大多数流行网站中

Now a days real time updates are common in most popular sites which have heavy usages.

现在,在大多数流行网站中,实时更新很常见。

  • StackExchange
  • Facebook
  • Twitter

I'm wondering how do these "real time updates" work? I'm just looking for a general bird's view perspective. I suspect that the JS can't be calling the server every X seconds for an update and then appending that to the

    . Is a notification sent from the server went to pull more content?

    我想知道这些“实时更新”是如何工作的?我只是在寻找一般鸟类的观点。我怀疑JS不能每隔X秒调用服务器进行更新,然后将其附加到

      。从服务器发送的通知是否会提取更多内容?

    Would be great if there is a simple how to article that explains this with a demo?

    如果有一个简单的文章如何通过演示来解释这个,那会很棒吗?

    3 个解决方案

    #1


    25  

    Stack Overflow is using Web Sockets for real time updates. If you take a look in the source code (2012 source code), you would see:

    Stack Overflow使用Web套接字进行实时更新。如果您查看源代码(2012源代码),您会看到:

    StackExchange.ready(function () {
        StackExchange.realtime.init('ws://sockets.ny.stackexchange.com');
        StackExchange.realtime.subscribeToInboxNotifications();
        StackExchange.realtime.subscribeToReputationNotifications('1');
    });
    

    But note that some Opera versions do not support WebSocket. (not until Opera 10.70)

    但请注意,某些Opera版本不支持WebSocket。 (直到Opera 10.70)

    However Facebook does not seem to be using Web Sockets, and I think they are just using simple XHR with a technique called long polling, which the server holds on to the connection until there is new information, and then respond to the request. If you open up the developer tools you can see that there is always one request which has a status of pending.

    然而,Facebook似乎没有使用Web套接字,我认为他们只是使用简单的XHR和一种称为长轮询的技术,服务器在有新信息之前保持连接,然后响应请求。如果打开开发人员工具,您会发现总有一个请求具有待处理状态。

    It is indeed, sending a request every ~60 seconds.

    确实,每隔约60秒发送一次请求。

    #2


    2  

    It seems that Twitter also uses simple XHR (1 minute intervals) for their "real time updates".

    Twitter似乎也使用简单的XHR(1分钟间隔)进行“实时更新”。

    #3


    0  

    Facebook uses long polling/Comet. So it makes a connection and waits for a response, if no response, then it times out and tries again. The timeout is around 40 secs. That's how it does most of the instant updating. However they use a combination of techniques. More on long polling here.

    Facebook使用长轮询/ Comet。所以它建立连接并等待响应,如果没有响应,则超时并再次尝试。超时约为40秒。这就是大多数即时更新的方式。然而,他们使用了一系列技术。更多关于长期投票的信息。

    http://en.wikipedia.org/wiki/Comet_(programming)


推荐阅读
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 公司有个系统,比较古老,web端使用的是applet,applet作为socketclient端。另一台服务器运行socketserver.当多次执行某一个特定事务时(通过Applet,该事务会触 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文探讨了如何通过检测浏览器类型来动态加载特定的npm包,从而优化前端性能。具体而言,仅在用户使用Edge浏览器时加载相关包,以提升页面加载速度和整体用户体验。此外,文章还介绍了实现这一目标的技术细节和最佳实践,包括使用User-Agent字符串进行浏览器识别、条件加载策略以及性能监控方法。 ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 本文源自极分享,详细内容请参阅原文。技术债务如同信用卡负债,随着时间推移,修复成本会越来越高,因此程序员必须对此有深刻认识。此外,团队应致力于培养一种持续维护和优化代码的文化,以减少技术债务的累积。 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • REST API 时代落幕,GraphQL 持续引领未来
    尽管REST API已广泛使用多年,但在深入了解GraphQL及其解决的核心问题后,我深感其将引领未来的API设计趋势。GraphQL不仅提高了数据查询的效率,还增强了灵活性和性能,有望成为API开发的新标准。 ... [详细]
  • 42VERSE & 圆圈徽章,Web3 社交的流派之争——针对两个国内案例的调研
    01 行业分析本文所研究的细分赛道为:Web3应用层——社交与内容场景——DID/创新场景(以元宇宙3D空间为 ... [详细]
  • 本篇内容主要讲解“JavaScript在网页设计中的嵌入应用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小 ... [详细]
author-avatar
张梦蒙4428
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有