专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

WebTransport是为替代WebSockets而生?

  大家好,很高兴又见面了,我是前端进阶,由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
  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:4999wt;asyncfunctioninitTransport(url){实例化WebTransport连接consttransportnewWebTransport(url);Theconnectioncanbeusedoncereadyfulfillsawaittransport。ready;}asyncfunctioncloseTransport(transport){关闭连接try{awaittransport。closed;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。readable;stream。writableisaWritableStreamconstwritablestream。writable;}
  使用流,您还可以将接收到的数据通过管道传输到处理程序中,例如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){break;}值为Uint8Arrayconsole。log(value);}}constrstransport。receiveStreams();constreaderrs。getReader();while(true){const{done,value}awaitreader。read();if(done){break;}值为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

让人惊呼根本就是本人!的2。5次元舞台剧2。5次元舞台剧,就是指在三次元舞台上再现二次元漫画和游戏的舞台剧。说得更国产语境一点,其实就是漫画游戏IP改编的舞台剧。这种表演形式在日本流行的时间已经很久了,最初走向中国市场是如今娱乐古装丑男横行,其实早从任贤齐和何润东时期就已经开始了如题,近年来总会有很多古装剧让人们不忍直视,剧情浮夸就不说了,作为古偶剧,哪怕颜值过关,观众也是可以忍一忍的,诸如陈晓和刘亦菲合作的梦华录剧情中出现很多不符合古代背景的情节,以及其销声匿迹的歌手县城走穴直播卖惨不修边幅,风光早已不再一切美好只是昨日沉醉,淡淡苦涩才是今天滋味没想到,网友阳了后的苦中作乐,竟然意外让田震老师的铿锵玫瑰再次小火了一把。视频加载中热血的歌词,颓废的公鸭嗓,完全不搭,却又完美契合,唱出善良的黄子韬成名后不忘聋哑的发小,高薪聘请他当助理2016年,歌手黄子韬因为一段教聋哑孩子跳舞的视频登上了热搜。视频中的他熟练地打着手语,与那些听不见声音,说不出来话的聋哑孩子交流完全无障碍。当时无数人都很好奇,黄子韬竟然会手语?终于,一点点热闹起来了这阵子呢,身边朋友都陆陆续续中招了,不是从阴变阳,就是从阳变阴,或者,是在阴阳之间。总之,各有各的辛苦。所以,还是希望大家都能健健康康,病着的朋友也早日康复吧。与此同时呢,电影院也张大大怒怼王宝强你信不信我弄死你,宝强的回应,网友直呼叫绝在15年的一档综艺节目中张大大嚣张的翘着兰花指指着王宝强说你信不信我弄死你。王宝强不甘示弱强势的回应了7个字你到底是男是女?彻底让张大大无言以对面对这一情形,属实让一同录制节目的谢世界杯决赛在即泽连斯基想要蹭热度?据美国有线电视新闻网(CNN)独家报道,乌克兰总统泽连斯基原计划在世界杯决赛前发表关于和平的演说,但这一计划遭到国际足联的拒绝。国际足联主席詹尼因凡蒂诺(左)与乌克兰总统泽连斯基,肾气不足,精关不守,中医一方帮你补肾延时对于男人来说,最重要的就是肾气,肾气的多少不仅决定你的寿命,更决定着你的生活质量,尤其对于很多男人来说,肾气的强弱直接决定你关键时刻的时间,如果想要正常发挥,就需要有充足的肾气才能阳了?家里没有药怎么办,教你轻松对付家里没药怎么办?不要着急,希望这些能帮到你。首先心态要放稳,其实一般情况下自身抵抗力强,也能挺过去。如果有鼻塞,可以用新鲜的柠檬泡温水喝,或者生理盐水清洗鼻腔,如果干咳,可以把梨中央视不播!CBA今日4赛,杜锋练兵,刘维伟打黑马,李春江恶斗旧主头条创作挑战赛北京时间12月18日消息,202223赛季CBA常规赛火热进行中,第15轮比赛将从12月18日打响,一日4场比赛。杜锋率领广东男篮迎战鱼腩,做好练兵的准备。刘维伟则是围墙花园不再,和苹果税说再见的时候到了?文InnocentRoland从苹果AppStore诞生以来已经过去了14年,在这过去的14年,苹果一直着力于打造一个封闭的系统生态,并且从该生态中获利颇丰。但显然这一切已经到了结
手机发布会邀请函奇招百出,有的送拳套,还有厂商送陨石说起手机发布会邀请函,各大厂商可谓是八仙过海,各显神通。在过去十年间,稀奇古怪的手机发布会邀请函不计其数,但以下三个绝对是最有特色的。首先是魅蓝发布会邀请函,一个大大的白色盒子里面重磅!杜锋应正视起来,真正的亚洲第一控卫带教练出战世预赛据菲律宾有关媒体报道,克拉克森将代表菲律宾男篮参加第四窗口期的世预赛,一直以来谁才是亚洲第一控卫?有的人说是郭艾伦,但是这次世预赛郭艾伦由于身体原因,缺席了很多场比赛,那么阿拉基应华为技术有限公司今年的中标分析华为是全球领先的ICT(信息与通信)基础设施和智能终端提供商,致力于把数字世界带入每个人每个家庭每个组织,构建万物互联的智能世界。2021年净利润达到1137亿元,来看下今年目前为科研人家研制出相位锁定的涡旋物质波干涉仪近日,中国科学院精密测量科学与技术创新研究院江开军研究团队研制出基于超冷原子气体的涡旋物质波干涉仪,并观察到两自旋分量上干涉条纹的相位锁定现象。干涉是经典波动力学和量子力学中的基本被踢出九大行星的冥王星到底有多可怕?综述2020年,我国航天局宣布,将我国新的行星探测任务命名为天问。这个名取得甚妙,不仅契合了航天探索的精神,还用到了我国的古典文化知识,可以说是一语双关用到了极致。对星空的好奇,从世界上这么多陨石坑,陨石坑里为什么没有陨石?它们被谁拿走了?地球已经诞生了46亿年的时间,然而,地球并不是宇宙中唯一的天体,宇宙无边无际,像地球这样的行星数不胜数,其中也不乏比地球还要大的存在。既然有比地球还要大的行星,那就肯定会有比地球还在韦伯望远镜的新图像中,罕见类型的星系炫目詹姆斯韦伯太空望远镜穿透宇宙尘埃,揭示了一种罕见星系的新细节和令人惊叹的图像。太空天文台的最新图像显示了Cartwheel星系,这是一个环形星系,位于5亿光年之外,由一个大型螺旋星解密世界首颗量子微纳卫星的前世今生通讯员林梅中青报中青网记者王磊王海涵近日,世界首颗量子微纳卫星济南一号搭载中国科学院力箭一号运载火箭成功发射。目前,济南一号已进入既定轨道,太阳能帆板成功打开,即将开展在轨测试和星中性原子量子计算进展捕获原子的新方法原子是出了名的难以控制。它们从最坚固的容器中穿过,甚至在接近绝对零度的温度下也会抖动。尽管如此,科学家们需要捕获和操纵单个原子,以使原子钟量子计算机等量子设备能够正常运行。如果单个NothingPhone(1)通过耐用性测试但修起来比较麻烦上个月,Nothing公司的第一款手机正式发布,命名为NothingPhone(1)。这款网红手机发布后,拥有着超高的话题热度,尽管大家对它的品控问题批评很多,但市场反响却不错。85000元价位轻薄本的卷王,12代i5标压处理器120Hz高刷OLED屏前段时间,我给大家推荐了4款4000元颜值与性价比俱佳的轻薄本。有人表示要1kg才算轻薄,也有人说对重量没那么苛求想要性能好一些轻薄本。上次我就说过,性能与轻薄从来都是对头,想要极
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网