安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

WebTransport是为替代WebSockets而生?

10月26日 红朱砂投稿
  大家好,很高兴又见面了,我是前端进阶,由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
  WebTransport能否替代WebSockets?前言
  WebTransport是一种新规范,使用HTTP3从服务器发送和接收数据的协议框架。类似于WebSockets,但支持多流、单向流、无序传输以及可靠不可靠传输。目前Chrome、Edge、Opera浏览器已经支持WebTransport,火狐、Safari还未支持,具体如下图:
  WebTransport的浏览器支持情况1。WebTransport成为WebSocket替代方案?
  WebSockets是一种通过持久的单套接字socket在客户端和服务器之间实现全双工通信的技术,它允许低延迟、实时更新。
  而较新的WebTransport有以下特性:可靠数据传输:发送方会收到数据传输成功或失败的通知,失败的传输通常会重新发送,直到成功为止,然后发送下一个数据包。不可靠传输:没有传输成功的确认,丢失数据包不会被重新传送。这在注重传输速度、而非传输完整性的场景下可用,比如视频聊天。一个连接创建多个流:WebSockets为每个连接创建一个流,而WebTransport可以在一个连接上创建多个流。它避免了WebSockets所遭受的队头阻塞延迟,并且在创建连接时占用的资源较少。
  WebSockets以HTTP1。1协议开始,但WebTransport可在多种不同的协议之上工作,包括一些WebSockets不支持的协议。HTTP3:HTTP3是万维网使用的传输协议的新版本。HTTP3使用QUIC协议进行传输层数据交换,它有几个优点。QUIC可以防止队头阻塞延迟,在许多情况下提高网络性能。这是WebSockets的限制。异步WebWorkers多线程:通过WebTransport,编码人员还可以使用promises和异步函数的await关键字等功能,同时API也在WebWorkers中运行,支持多线程。
  下面是WebTransport工作组文档中的异步函数示例。consturlhttps:example。com:4999asyncfunctioninitTransport(url){实例化WebTransport连接consttransportnewWebTransport(url);Theconnectioncanbeusedoncereadyfulfillsawaittransport。}asyncfunctioncloseTransport(transport){关闭连接try{awaittransport。console。log(TheHTTP3connectionto{url}closedgracefully。);}catch(error){console。error(TheHTTP3connectionto{url}closeddueto{error}。);}}2。WebTransport使用场景?2。1加密流媒体
  WebTransport的流API允许您创建连接以发送有序数据。由于WebTransport使用QUIC协议,与TCP相比,打开和关闭这些连接所需的资源更少。
  您还可以做一些事情,例如更安全地提供流媒体。WebTransport有多种安全措施,例如要求使用Origin标头以及通过传输参数进行选择性加入。2。2多人游戏
  WebTransport适用于HTTP2、HTTP3和QUIC协议。它可以通过HTTP乱序接收数据,并且可以自己请求数据或监听服务器推送的数据。它可以可靠地和不可靠地做到这一点。
  通过WebTransport的双向流,服务器推送的数据延迟非常低,这对游戏开发来说是一个很大的优势。它还可以缩短云游戏服务的响应时间。2。3传感器数据
  许多物联网(IOT)设备记录需要传输到服务器的数据,而WebTransport的潜在用途是使用低延迟方法来传输这些数据。物联网设备经常定期发送少量数据,消耗更少的资源对设备的电池寿命和网络拥塞都有好处。3。WebTransport特性?
  一起看看WebTransport提供了哪些具体特性和功能。虽然该规范仍处于公开草案阶段,但已完全可用。除了QUIC协议之外,还有一个API可以让浏览器控制流和数据报。API仅支持HTTPS,以加强安全性。3。1QUIC
  QUIC是QuickUDPInternetConnections的缩写,谷歌发明的新传输协议。与TCP相比,QUIC可以减少延迟。从表面上看,QUIC非常类似于在UDP上实现的TCPTLSHTTP2。由于TCP是在操作系统内核和中间件固件中实现的,因此对TCP进行重大更改几乎是不可能的。
  但是,由于QUIC建立在UDP之上,因此没有这种限制。QUIC可以实现可靠传输,而且相比于TCP,它的流控功能在用户空间而不在内核空间,那么使用者就不受限于CUBIC或是BBR,而是可以自由选择,甚至根据应用场景自由调整优化。
  QUIC与现有TCPTLSHTTP2方案相比,有以下几点特征:利用缓存,显著减少连接建立时间改善拥塞控制,拥塞控制从内核空间到用户空间没有headofline阻塞的多路复用前向纠错,减少重传连接平滑迁移,网络状态的变更不会影响连接断线
  Chrome原生支持QUIC,并且启用QUIC的服务器会一直支持0RTT握手,在Chrome中可以通过如下命令打开QUIC配置:chrome:flags浏览器直接访问
  WebTransport也可以在没有QUIC的情况下运行在HTTP2或HTTP3之上。它还可以使用HTTP2作为后备方案,让您可以利用WebTransport的优势,而无需考虑网络。3。2数据报
  WebTransport主要处理数据报和流。数据报是一个独立的数据包,可以以任何特定顺序到达。数据报发送不可靠,如果某些数据丢失,连接也可以应付。WebTransport规范允许您使用maxDatagramSize属性限制数据报的大小。
  maxDatagramSize的浏览器支持情况
  WebTransport对象有一个数据报对象,可以通过其可读和可写属性访问该对象。数据报可以排队,您也可以创建promise等待数据报传输。
  WebTransport对象还包括状态数据,指示它们是正在连接、已连接、已关闭还是已失败。3。3Stream
  流允许您发送有序、可靠的数据。您可以建立流并让服务器将此内容推送到客户端。它允许低延迟、实时通信。
  在API中,WebTransport对象具有用于表示不同类型流的其他对象的插槽。其中包括SendStream、ReceiveStream和BidirectionalStream对象,目前这些还只存在于草案中。比如下面的BidirectionalStream:asyncfunctionsetUpBidirectional(){conststreamawaittransport。createBidirectionalStream();streamisaWebTransportBidirectionalStreamstream。readableisaReadableStreamconstreadablestream。stream。writableisaWritableStreamconstwritablestream。}
  使用流,您还可以将接收到的数据通过管道传输到处理程序中,例如TextDecoderStream,它将数据转换为您的应用程序可以轻松使用的格式。3。4发送流
  SendStream对象是一种用于传出数据的WritableStream。它们存储流对象,但SendStream对象还包含一个promise,它定义了它将采取的操作,例如关闭或中止。SendStream对象还包含一个插槽,用于将它们附加到HTTP3传输层。向服务器发送两个Uint8Arrayconststreamawaittransport。createSendStream();constwriterstream。writable。getWriter();constdata1newUint8Array(〔65,66,67〕);constdata2newUint8Array(〔68,69,70〕);writer。write(data1);writer。write(data2);try{awaitwriter。close();console。log(Alldatahasbeensent。);}catch(error){console。error(Anerroroccurred:{error});}3。5接收流
  ReceiveStream对象是一种处理传入数据的ReadableStream。ReceiveStream对象的结构类似于SendStream对象,具有流槽和传输槽。但是,它不包括promise。asyncfunctionreadFrom(receiveStream){constreaderreceiveStream。readable。getReader();while(true){const{done,value}awaitreader。read();if(done){}值为Uint8Arrayconsole。log(value);}}constrstransport。receiveStreams();constreaderrs。getReader();while(true){const{done,value}awaitreader。read();if(done){}值为ReceiveStream的一个实例awaitreadFrom(value);}3。6双向流
  双向流将发送流和接收流组合到一个对象中,这使您可以在一个地方管理双向通信。对象具有可读和可写的属性,对应于上面讨论的ReceiveStream和SendStream对象。
  这些属性使它们能够处理双向发送的数据。您读取传入流并写入传出流。3。7单向流
  您还可以创建单向流。IncomingUnidirectionalStreams是由多个ReceiveStreams组成的ReadableStreams。您可以调用createUnidirectionalStream()来创建传出等效项。asyncfunctionwriteData(){conststreamawaittransport。createUnidirectionalStream();constwriterstream。writable。getWriter();constdata1newUint8Array(〔65,66,67〕);constdata2newUint8Array(〔68,69,70〕);writer。write(data1);writer。write(data2);try{awaitwriter。close();console。log(Alldatahasbeensent。);}catch(error){console。error(Anerroroccurred:{error});}}4。WebTransport可以取代WebSockets吗?
  WebTransport已经是WebSockets的可行替代品,没有线头阻塞、延迟稍低以及多协议方法的多功能性在许多场景中都有好处。
  但是,由于WebTransport技术尚未完全敲定,开发工具较少,并且会持续一段时间。现在预测WebTransport的用途还为时过早,但第一批使用它的团队完全有机会构建一些开创性的东西。
  虽然没有迫切需要切换,但开发人员应该为未来的项目密切关注它,并准备好在最合适的情况下使用它。参考资料
  https:ably。comblogcanwebtransportreplacewebsockets
  https:blog。p2hp。comarchives10031
  about:blank
投诉 评论 转载

足坛消息汇总哈兰德进球拒绝庆祝梅西欧冠破门C罗晒帅照以下是9月15日足坛消息汇总:哈兰德破门拒绝庆祝今天凌晨,曼城欧冠主场21逆转多特蒙德的比赛,哈兰德弑杀旧主,他进球后没有庆祝,以示对前东家的尊重。数据统计显示,哈……秋季进补,来年打虎,建议男人吃2肉喝3饮,身强又体健老话说到:秋季进补,老年打虎。这和传统观点里的春生、夏长、秋收、冬藏不谋而合。随着深秋的来临,不论是自然界的动物,还是我们都开始进入收藏的阶段了。这个时候若适当的进补,或能提供……如何拉近和玩家的距离,梦幻新诛仙带来策划面对面问答在前段时间,《梦幻新诛仙》手游首届仙盟盛典在长隆度假区圆满落幕。这次活动也是《梦幻新诛仙》手游上线以来首个大型线下交流会,受到邀请的玩家不仅可以在活动现场体验各种有趣的活动,还……39岁房祖名公开露面,与妹妹一样留寸头,罕谈成龙林凤娇爱情8月19日,成龙爱子房祖名罕见公开露面,当天已故导演李行纪念影展,他是林凤娇的恩师,房祖名代替父母出席活动。台媒指出这是房祖名涉毒之后首度公开亮相,沉寂八年的房祖名一改昔……补钙要避开这些不良生活习惯在均衡营养膳食的全民健康宣传中,钙、铁、锌等矿物质以及硒等微量元素渐渐成为全民共识,喝奶、喝骨头汤、吃钙片,大家常用的补钙方式,都科学吗?不利于钙吸收的生活习惯1、……WebTransport是为替代WebSockets而生?大家好,很高兴又见面了,我是前端进阶,由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!WebTransport能否替代We……北纬23。5,邂逅一杯咖啡的温暖云雾缭绕的高山咖啡地里,红宝石一样的咖啡果在绿叶的映衬中格外鲜艳。从一粒种子到一粒果子,没有人比咖农更关注咖啡的生长,他们用勤劳与汗水表达对咖啡最深沉的热爱。眼下,正值小……陌上花开相遇朝朝暮暮彩蝶浓了百丛花,梅雨笑了池塘莲!那年盛夏的季节,他们互相牵着彼此的手走向喜气盈门的红地毯。在鞭炮齐鸣的庆贺和亲朋好友热烈的祝福下,他们叩拜了天地、父母与彼此。那天新郎一身黑色郑……虔诚的天主教徒卓越的艺术君主奠定世界音乐之都的基础圣母玛利亚像巴伐利亚在德国的位置2006年,教宗本笃十六世牧灵访问德国南部巴伐利亚邦首府慕尼黑后,于9月11日上午乘直升机飞往德国和中欧最重要的圣母朝圣地旧厄廷(A……第三座公益性质携程度假农庄落地陕西佛坪12月12日,历经六个月的精心打磨,携程度假农庄(陕西佛坪店)正式开业。作为第三座公益性质的携程度假农庄,携程度假农庄(陕西佛坪店)不仅肩负着完善目的地住宿短板,打造乡村民宿标……国际关注!湖北教授团队获国家重点资助,最新成果登上顶级期刊!近日,华中师范大学物理科学与技术学院俞云伟教授课题组在国际权威期刊TheAstrophysicalJournalLetters发表时域天文学领域最新研究成果。团队揭示了快变蓝色……庞特卡内古堡践行生物动力法的超二级庄庞特卡内古堡(ChateauPontetCanet,又名:庞特卡奈古堡)在1855分级中被评为五级庄,但其近年来的表现已远超五级庄,即使在名庄林立的波雅克(Pauillac)也……
有人爱就是幸福美得令人窒息,中国姑娘梦法网女单第三轮斯瓦泰克2比0击败科维尼奇携31连胜晋级16强这十年,长春消费业态不断上新巴哈达龙奇怪的尖刺原来是大自然的绝妙发明,令人惊叹王者荣耀综艺战至巅峰张大大还不够讨人厌吗?iOS16。1正式版7大新功能抢先看iOS16。1RC版推送加速肺癌的5种东西,都是你日常生活中经常见到的兆新股份债务展期背后去年曾向民企借年化率一度达28。80的高校园霸凌,保护自己就是保护家人妹妹误将火碱当冰糖冲给姐姐喝,宝宝误食清洁剂该如何处理?充电5分钟,续航200公里,压倒燃油车的稻草?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利