前端通讯协议:WebSocket和长轮询对比分析详解_1

网上科普有关“前端通讯协议:WebSocket和长轮询对比分析详解”话题很是火热,小编也是针对前端通讯协议:WebSocket和长轮询对比分析详解寻找了一些与之相关的一些信息进...

网上科普有关“前端通讯协议:WebSocket和长轮询对比分析详解”话题很是火热,小编也是针对前端通讯协议:WebSocket和长轮询对比分析详解寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

长轮询概述

1995年,网景通信聘请BrendanEich在网景Navigator中实现脚本编写能力,在十天的时间里,JavaScript语言诞生了。与现代JavaScript相比,它作为一种语言的能力最初非常有限,它与浏览器的文档对象模型(DOM)交互的能力很有限。JavaScript主要用于提供有限的增强以丰富文档使用功能。例如,浏览器内表单验证和在现有文档中轻量插入动态HTML。

随着浏览器大战的升温,微软的InternetExplorer达到了第4版甚至更高版本,对最强大特性集的争夺导致微软引入了最终成为XMLHttpRequest的东西。十多年来,所有浏览器都普遍支持这一功能。

长轮询实际上是原始轮询技术的一种更有效的形式,向服务器发出重复请求会浪费资源,因为必须建立每个新的传入连接,必须解析HTTP头,必须执行对新数据的查询,并且必须生成和交付响应(通常不提供新数据)。然后必须关闭连接并清除所有资源,而不必为每个客户端多次重复这个过程直到新数据对于一个给定的客户端可用。长轮询是一种技术,其中服务器选择尽可能长时间地保持客户端的连接打开,仅在数据变为可用后才传递响应可用或达到超时阈值。

长轮询优点

长轮询是在XMLHttpRequest的后面实现的,XMLHttpRequest几乎得到了设备的普遍支持,因此通常不需要支持进一步的后备层。但是,在必须处理异常的情况下,或者可以查询服务器以获取新数据但不支持长轮询(更不用说其他更现代的技术标准)的情况下,基本轮询有时仍然具有有限的用途,并且可以使用XMLHttpRequest或通过简单的HTML脚本标签通过JSONP。

长轮询缺点

长轮询在服务器上要密集得多。可靠的消息排序可能是长轮询的一个问题,因为来自同一客户端的多个HTTP请求可能同时进行。例如,如果客户端打开两个浏览器选项卡使用相同的服务器资源,并且客户端应用程序将数据持久化到本地存储(如localStorage或IndexedDb),则没有内置保证不会重复数据写了不止一次。

根据服务器的实现,一个客户端实例对消息接收的确认也可能导致另一个客户端实例根本没有收到预期的消息,因为服务器可能错误地认为客户端已经收到了它预期的数据。

开源解决方案

大多数库都不会独立于其他传输来实现长轮询,因为一般来说,长轮询通常伴随着其他传输策略,作为后备或当长轮询不起作用时将这些传输作为后备。在2018年及以后,独立的长轮询库尤其不常见,因为面对对更现代的替代方案的广泛支持,这种技术正迅速失去相关性。下面是几种不同语言的长轮询开源库:

go:golongpoll

PHP:php-long-polling

Node.js:Pollymer

Python:simpleCOMETserver

WebSocket概述

大约在2008年年中,开发人员MichaelCarter和IanHickson尤其敏锐地感受到了在实现任何真正强大的东西时使用Comet的痛苦和局限性。通过在IRC和W3C邮件列表上的合作,他们制定了一项计划,为网络上的现代实时双向通信引入新标准,因此创造了WebSocket这个名称。

这个想法进入了W3CHTML草案标准,不久之后,MichaelCarter写了一篇文章,将Comet社区介绍给WebSockets。2010年,GoogleChrome4是第一个全面支持WebSockets的浏览器,其他浏览器供应商在接下来的几年里也纷纷效仿。2011年,RFC6455(WebSocket协议)发布到IETF网站。

简而言之,WebSockets是一个建立在设备TCP/IP堆栈之上的薄传输层。其目的是为Web应用程序开发人员提供本质上尽可能接近原始的TCP通信层,同时添加一些抽象以消除某些可能存在的与Web工作方式有关的摩擦。它们还迎合了这样一个事实,即网络具有额外的安全考虑因素,必须考虑这些因素以保护消费者和服务提供商。

WebSocket优点

WebSocket是一种事件驱动的协议,这意味着可以将其用于真正的实时通信。与HTTP不同(必须不断地请求更新),而使用WebSockets,更新在可用时就会立即发送。

WebSockets保持单个持久连接打开,同时消除基于HTTP请求/响应的方法出现的延迟问题。

WebSockets通常不使用XMLHttpRequest,因此,每次需要从服务器获取更多信息时,都不会发送标头。这反过来又减少了发送到服务器的数据负载。

WebSocket缺点

当连接终止时,WebSockets不会自动恢复,这是应用开发中需要自己实现的机制,也是存在许多客户端开源库的原因之一。

早于2011年的浏览器无法支持WebSocket连接,这个现在可以忽略不计。

开源解决方案

在之前的文章中有很详细的介绍,如有兴趣可以参阅《深入学习WebSockets概念和实践》。

为什么WebSocket协议是更好的选择

通常,WebSockets将是更好的选择。

长轮询在服务器上占用的资源要多得多,而WebSockets在服务器上的占用空间非常小。长轮询还需要在服务器和设备之间进行多次跳跃。并且这些网关通常对允许典型连接保持打开状态的时间有不同的看法。如果它保持打开时间太长,某些东西可能会杀死它,甚至在它正在做一些重要的事情时也是如此。

为什么你应该使用WebSockets构建:

全双工异步消息传递,换句话说,客户端和服务器都可以独立地相互传输消息。

WebSockets无需任何重新配置即可通过大多数防火墙。

良好的安全模型(基于来源的安全模型)。

作者:天行无忌

关于“前端通讯协议:WebSocket和长轮询对比分析详解”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[一五六七]投稿,不代表空气号立场,如若转载,请注明出处:https://www.haokongqi.org.cn/cshi/202505-1555.html

(213)

文章推荐

  • 浪潮云是什么

    网上科普有关“浪潮云是什么”话题很是火热,小编也是针对浪潮云是什么寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。浪潮云是中国浪潮信息产业集团有限公司(Inspur?Group)的云计算服务品牌。1、浪潮云,全球云服务商,作为中国分布式云的引领者,浪潮云致力于

    2025年02月25日
    128
  • 日本动漫

    网上科普有关“日本动漫”话题很是火热,小编也是针对日本动漫寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。2000《双面小魔女》《心跳时刻》《外星BB撞地球》《风云三姐妹》《幻兽星座》《银狼》《天使禁猎区OVA》《毁灭者战记》《真?女神转生魔鬼

    2025年03月01日
    133
  • 实测教程“雀神广东麻将必胜软件怎么用(透视挂真的假的)

    网上科普有关“雀神广东麻将必胜软件怎么用”话题很是火热,小编也是针对雀神广东麻将必胜软件怎么用寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,雀神广东麻将必胜软件怎么用这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌

    2025年03月06日
    15
  • 去年的这个时候的句子(去年这个时候怎么表达)

    本篇文章给大家谈谈去年的这个时候的句子,以及去年这个时候怎么表达对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。怀念去年今日的句子不要过分强求,保持内心的安宁,人生自然圆满。去年的故事已成为往事,我们穿越压力与挑战,看着时间留下的痕迹,心中充满无尽的怀念。流下的眼泪是相思的印记,也是对逝去

    2025年03月09日
    27
  • 武汉新冠肺炎从什么时候开始(武汉新冠肺炎什么时候出现的)

    今天给各位分享武汉新冠肺炎从什么时候开始的知识,其中也会对武汉新冠肺炎什么时候出现的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!疫情是哪年开始的哪年结束的年12月31日,新型冠状病毒肺炎(COVID-19)疫情开始在中国武汉市爆发。2020年1月20日,中国国家卫生健康委

    2025年03月09日
    34
  • 隋朝一共多少年?

    网上科普有关“隋朝一共多少年?”话题很是火热,小编也是针对隋朝一共多少年?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。总共37年!隋朝(581年-618年)是中国历史之中,上承南北朝、下启唐朝的一个重要的朝代,史学家常把它和唐朝合称隋唐。隋朝源自581年隋

    2025年03月15日
    158
  • 武汉纺织大学中外合作办学学费

    网上科普有关“武汉纺织大学中外合作办学学费”话题很是火热,小编也是针对武汉纺织大学中外合作办学学费寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。武汉纺织大学中外合作办学学费为39500元/年。通常来说,中外合作办学专业学费比较贵,少则2-3万元/年,通常都是

    2025年03月18日
    171
  • 小学六年级家长寄语怎么写?

    网上科普有关“小学六年级家长寄语怎么写?”话题很是火热,小编也是针对小学六年级家长寄语怎么写?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。家长对我可以这么写:1、你是个聪敏的孩子,但身上毛病也不少,妈妈希望你这学期能改掉身上的坏习惯,坏毛病;在学习上,你能

    2025年03月19日
    146
  • 深圳市重点高中有哪些。除了四大名校..教苑中学(深圳市第三高级中学)是重点高中么

    网上科普有关“深圳市重点高中有哪些。除了四大名校..教苑中学(深圳市第三高级中学)是重点高中么”话题很是火热,小编也是针对深圳市重点高中有哪些。除了四大名校..教苑中学(深圳市第三高级中学)是重点高中么寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。深圳市重点

    2025年03月21日
    31
  • 2022年疫情结束了吗最新消息(二零二零年疫情啥时结束)

    今天给各位分享2022年疫情结束了吗最新消息的知识,其中也会对二零二零年疫情啥时结束进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!广汉市坐城际快车要核酸吗1、不用。根据疫情防控最新消息,2022年12月5日,正式宣布新冠肺炎疫情结束,疫情封控结束。广汉市坐城际快车不要核酸,

    2025年03月31日
    26

发表回复

本站作者后才能评论

评论列表(4条)

  • 一五六七
    一五六七 2025年05月02日

    我是空气号的签约作者“一五六七”!

  • 一五六七
    一五六七 2025年05月02日

    希望本篇文章《前端通讯协议:WebSocket和长轮询对比分析详解_1》能对你有所帮助!

  • 一五六七
    一五六七 2025年05月02日

    本站[空气号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 一五六七
    一五六七 2025年05月02日

    本文概览:网上科普有关“前端通讯协议:WebSocket和长轮询对比分析详解”话题很是火热,小编也是针对前端通讯协议:WebSocket和长轮询对比分析详解寻找了一些与之相关的一些信息进...