跳转到内容

WebTransport 浏览器支持

发布于 更新于

WebTransport 在客户端与服务器之间通过 HTTP/3 传输数据,既提供基于流的可靠传输, 也提供基于数据报(datagram)的不可靠、类 UDP 传输,二者共用一条连接。

  • 图例
  • 支持
  • 部分支持
  • 需开启标志
  • 不支持
  • 未知
浏览器 / 平台支持版本置信度来源备注
Chrome (Desktop)支持97高来源—
Chrome (Android)支持97高来源1
Edge (Desktop)支持97高来源2
Firefox (Desktop)支持114高来源—
Firefox (Android)支持114高来源3
Safari (macOS)支持26.4高来源—
Safari (iOS)支持26.4高来源4
Samsung Internet支持18.0高来源5
WebView (Android)支持97高来源6
  1. 由 browser-compat-data 镜像自 Chrome 的数据推导。
  2. 由 browser-compat-data 镜像自 Chrome 的数据推导。
  3. 由 browser-compat-data 镜像自 Firefox 的数据推导。
  4. 由 browser-compat-data 镜像自 Safari 的数据推导。
  5. 由 browser-compat-data 镜像自 Chrome Android 的数据推导。
  6. 由 browser-compat-data 镜像自 Chrome Android 的数据推导。

源数据: /compatibility/webtransport.json · 全球使用占比: 93 % (StatCounter 2026-05)

来源: 规范 · MDN · 最近核验 2026-10-03 · 置信度: 高 (由来源计算)

将服务器的 https URL 传给 WebTransport() 构造函数,然后等待 ready Promise 再使用该连接:

async function connect(url) {
const transport = new WebTransport(url);
await transport.ready;
return transport;
}

在创建连接之前,先检测 window 上是否存在 WebTransport。如果不存在,则回退为 使用 WebSocket 连接:

function openConnection(httpsUrl, wssUrl) {
if ('WebTransport' in window) {
return new WebTransport(httpsUrl);
}
return new WebSocket(wssUrl);
}
  • 传给构造函数的 URL 必须使用 https 协议。
  • 数据报(通过 datagrams 属性访问)是不可靠且无序的;仅在丢失或乱序消息可接受的场景 (例如定期的游戏状态更新)中使用。
  • 当传输顺序和可靠性必须得到保证时,使用 createBidirectionalStream() 或 createUnidirectionalStream()。
  • Safari 直到 Safari 26.4 才支持 WebTransport,弥合了此前该 API 事实上仅限于 Chromium 与 Firefox 的多年缺口——请勿假设它已普遍可用,务必参考上表核实。

← 返回兼容性浏览器。