• 我的订阅
  • 科技

基于.NET 7 的 WebTransport 实现双向通信

类别:科技 发布时间:2023-01-04 03:00:00 来源:微软中国MSDN

点击上方蓝字

关注我们

(本文阅读时间:7分钟)

WebTransport 是一个新的 Web API,使用 HTTP/3 协议来支持双向传输。它用于 Web 客户端和 HTTP/3 服务器之间的双向通信。它支持通过不可靠的 Datagrams API 发送数据,也支持可靠的 Stream API 发送数据。

因为 HTTP/3 使用了基于 UDP 的 QUIC 协议,所以 Web Transport 可以在一个连接上创建多个流,而且不会相互阻塞。

WebTransport 支持三种不同类型的流量:数据报(datagrams) 以及单向流和双向流。

WebTransport 的设计基于现代 Web 平台基本类型(比如 Streams API)。它在很大程度上依赖于 promise,并且可以很好地与 async 和 await 配合使用。

微软MVP实验室研究员

基于.NET 7 的 WebTransport 实现双向通信

李帅

微软最有价值专家(MVP),专注于云原生,分布式系统,可观测性技术。多年 .NET 开发经验,开源爱好者,技术博客博主。

在 .NET 7 中使用 WebTransport

WebTransport 在 .NET 7 及以上版本可用,我们新建一个 .NET Core 的空项目,修改 csproj 文件,设置 EnablePreviewFeatures 和 RuntimeHostConfigurationOption ,如下: < ProjectSdk= "Microsoft.NET.Sdk.Web"> < PropertyGroup> < EnablePreviewFeatures> True EnablePreviewFeatures> PropertyGroup>

< ItemGroup> < RuntimeHostConfigurationOptionInclude= "Microsoft.AspNetCore.Server.Kestrel.Experimental.WebTransportAndH3Datagrams"Value= "true"/> ItemGroup> Project>

要设置 WebTransport 连接,首先需要配置 Web 主机并通过 HTTP/3 侦听端口:varbuilder = WebApplication.CreateBuilder(args); builder.WebHost.ConfigureKestrel( ( context, options) => {// Port configured for WebTransportoptions.ListenAnyIP([SOME PORT], listenOptions=> {listenOptions.UseHttps(GenerateManualCertificate);listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;});});varapp = builder.Build;

修改下面的代码,接收 WebTransport 请求和会话。app.Run( async(context) => {varfeature = context.Features.GetRequiredFeature; if(!feature.IsWebTransportRequest) {return; }varsession = awaitfeature.AcceptAsync(CancellationToken.None); });

awaitapp.RunAsync;

等待 AcceptStreamAsync 方法直到接收到一个 Stream,使用 stream.Transport.Input 写入数据,stream.Transport.Output 读取数据。varstream = awaitsession.AcceptStreamAsync(CancellationToken.None);

varinputPipe = stream.Transport.Input; varoutputPipe = stream.Transport.Output;

基于.NET 7 的 WebTransport 实现双向通信

在 Java 中使用 WebTransport

传入服务地址并创建 WebTransport 实例, transport.ready 完成,此时连接就可以使用了。consturl = 'https://localhost:5002'; consttransport = newWebTransport(url);

awaittransport.ready;

连接到服务器后,可以使用 Streams API 发送和接收数据。// Send two Uint8Arrays to the server.conststream = awaittransport.createSendStream; constwriter = stream.writable.getWriter; constdata1 = newUint8Array([ 65, 66, 67]); constdata2 = newUint8Array([ 68, 69, 70]); writer.write(data1);writer.write(data2);try{ awaitwriter.close; console.log( 'All data has been sent.'); } catch(error) { console.error( `An error occurred: ${error}` ); }

客户端和服务端双向通信

下面是一个具体的例子,使用 WebTransport 实现了客户端和服务端的双向通信。

基于.NET 7 的 WebTransport 实现双向通信
基于.NET 7 的 WebTransport 实现双向通信

完整的代码在下面的 Github 地址。希望对您有用! Github 地址https://github.com/danroth27/AspNetCoreNet7Samples/tree/main/WebTransportInteractiveSampleApp

*未经授权请勿私自转载此文章及图片。

扫码查看 .NET 7 的新增功能

微软最有价值专家(MVP)

微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。29年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。

MVP是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft 技术。

更多详情请登录官方网站:

https://mvp.microsoft.com/zh-cn 返回搜狐,查看更多

责任编辑:

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-01-04 05:45:05

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

引领空气革命 海信空调双向新风重塑健康呼吸体验
...行业领军品牌,海信空调凭借新风领域的深厚积累,提出双向新风技术、AI智能场景等先进技术,将新风功能拓展至更深层次,提供更洁净、健康的室内空气环境。 全时双向新风概念,刷新行
2025-01-09 15:23:00
邱锂力 无线感知技术赋予AI“第六感官”
...们,着手探寻无线通信和感知与人工智能大模型之间的“双向奔赴”,用新质生产力为信息产业赋能。无线技术,为人工智能的发展和应用搭起了数据的桥梁,将数据从资源受限的边缘设备传输至计
2024-05-22 15:03:00
日本顺天堂大学用HoloLens 2开发双向3D在线诊疗系统Holomedicine
...s 2作为基础,并利用可立体扫描空间的Azure Kinect DK开发了双向3D在线诊疗系统Holomedicine
2023-11-01 11:02:00
...ocket 2。根据官方消息,华为Pocket 2是小折叠领域首个支持双向北斗卫星消息的产品。在无地面网络信号的情况下
2024-02-23 11:47:00
小米也要捅破天!新旗舰或配备双向卫星通信
...爆料博主数码闲聊站发文暗示,小米新旗舰上将会配备“双向卫星通信”技术。这个“双向”比较引人注意,按照常规理解应该是支持收发双方互相的通信,能够进行一些对话沟通,相比苹果和华为
2023-01-05 23:38:00
让您的生活更安全与便利!探索双向呼叫线路的无限可能
...多安全和便利的解决方案来保护自己和我们所关心的人。双向呼叫线路的出现正是满足这一需求的一种创新技术。什么是双向呼叫线路?双向呼叫线路是一种允许双向通信的系统,可以通过远程通信
2024-06-21 23:35:00
我国首次实现独家自主完成业务化应用星地激光高速图像传输试验
...平对接测试,水平距离500m,实现了下行10Gbps、上行10Mbps双向激光通信。2023年6月14日,车载激光通信地面站与“吉林一号”MF02A04星星载激光终端开展了星地双向捕获跟踪试验
2023-10-11 18:26:00
小米15 Ultra支持无网通话:完全无网可最远7km双向通话
...通话功能,挑战行业极限,完全无网的环境下,也能实现双向通话距离最远7公里。并且全系标配天通卫星通信功能,全球首次实现手机直连卫星数据服务;更有北斗、天通双卫星版本,搜星速度更
2025-02-27 19:36:00
今日消息,博主数码闲聊站透露,双向卫星通信技术今年有望落地,这是一项堪称“捅破天”的技术。此前高通公司在CES上展示了首个基于卫星的双向消息通信解决方案,高通计划将这项功能带到安
2023-01-14 15:24:00
更多关于科技的资讯:
国产热成像品牌实力榜解析
曾几何时,红外热成像江湖是FLIR、雷神等海外巨擘的专属领地,技术壁垒与市场垄断如同铜墙铁壁。但如今,国产力量强势崛起
2026-01-15 17:21:00
智启创业新篇 共筑产业高地——2026年青岛市AI创业生态大会举办 单人AI创业家(OPIE)平台同步上线
鲁网1月15日讯(记者 薛同春 通讯员 赵红)1月15日,2026年青岛市AI创业生态大会暨单人AI创业家(OPIE)平台上线发布会在青岛国际会议中心隆重举行
2026-01-15 17:22:00
当一场场标榜“山姆线上直播”“无需会员费”“全国配送”的带货狂欢在网络直播间轮番上演时,消费的便捷似乎触手可及。然而,喧嚣背后隐藏着另一重真相
2026-01-15 17:58:00
在智能化浪潮席卷各行业的今天,如何正确理解并应用人工智能,成为转型的关键。针对这一热点话题,贵州省人工智能机器视觉产研中心算法专家
2026-01-15 18:34:00
海外网1月15日电 据美国《新闻周刊》网站报道,由于销售状况不佳和债务情况恶化,美国高端百货零售企业萨克斯环球于当地时间14日宣布申请破产
2026-01-15 19:39:00
纵览名师讲堂 | 关注中考动向,聚焦高频考点一尺规作图与图形剪拼解题策略
石家庄市第九中学齐迎霞老师主讲中考数学高频考点——尺规作图与图形剪拼解题策略
2026-01-15 16:19:00
纵览原创|盒马指数171远超一线城市均值!石家庄新零售火爆的背后
记者 李春炜1月13日傍晚六点半,石家庄勒泰中心负一层的盒马鲜生门店内,选购新鲜果蔬、烘焙点心的顾客络绎不绝,收银台前排起长队
2026-01-15 16:21:00
海尔巴基斯坦发布冰箱新品 夯实高端引领地位
当地时间1月8日,海尔巴基斯坦经销商峰会在拉合尔成功举办。会上,海尔冰箱正式推出27款全系彩屏变频新品,包括Vista风冷系列以及全面升级的TM660系列
2026-01-15 16:13:00
曾经百元一颗,如今打三四折也卖不动,网红年宵花,过了风口要“昙花一现”?
“今年我一颗荷兰进口朱顶红种球都没进,去年囤的七八万颗卖不动,仓库还堆着不少尾货。”在浙江深耕种球贸易数十年的赵先生这样对记者说
2026-01-15 14:57:00
2025年,“商业航天”无疑是中国经济领域最热的关键词之一。这股热潮的兴起并非偶然,而是多重因素共同催化的结果——“商业航天”被写入国家“十五五”规划
2026-01-15 11:33:00
大河网讯(记者 赵檬 王怡潇 )蜜雪冰城开到美国好莱坞,锅圈食汇解决家庭聚餐新需求……河南食品企业越来越“潮”,频频打造全国爆款
2026-01-15 12:03:00
1月13日,“又一省份取消12345热线语音导航”的话题登上社交平台热搜。辽宁省营商环境建设领导小组办公室印发了《2026年优化政务环境行动方案》
2026-01-15 13:25:00
千问App全面接入支付宝,上线AI付款
1月15日,千问App宣布全面接入淘宝闪购和支付宝AI付,实现一句话点外卖。用户只需在千问的聊天框里自然说话,如“帮我点杯奶茶”或“帮我点两杯咖啡”
2026-01-15 13:33:00
千问App接入淘宝、闪购,测试AI购物功能
1月15日,千问App宣布全面接入淘宝、支付宝、淘宝闪购、飞猪、高德等阿里生态业务,在全球首次实现点外卖、买东西、订机票等AI购物功能
2026-01-15 11:00:00