什麼是WebTransport?
WebTransport 是WebRTC體系下的一套瀏覽器API,提供低延遲,client和server之間雙向通信的能力。 核心的能力點包括:
- WebTransport 提供基於QUIC 和 HTTP3實現的API, 自動獲得QUIC和HTTP3本身的特性,比如應用層的擁塞,避免隊頭阻塞。
- 雙向通信的能力,多個傳輸通道復用一個連接的能力,能夠很好的替代WebSocket。
- 提供發送/接受不可靠UDP的能力,這個是瀏覽器一直欠缺的能力,
相關的規范如下:
- WebTransport overview 這個規范介紹瞭WebTransport整體的情況,
- WebTransport over QUIC 這個規范介紹WebTransport over QUIC的實現規范, 目前版本(M89)的WebTransport實現是基於QUIC的。
- WebTransport over HTTP/3 這個規范介紹WebTransport over HTTP/3的實現規范,目前版本(M89)還沒有實現這這部分。 按照官方的說法是,WebTransport 最終會完全基於HTTP/3 實現,並移除基於QUIC的實現,這個還需要進一步關註。
在瀏覽器中可以通過URL 來實例化一個WebTransport 實例,比如:
const url = ‘quic-transport://example.com:4999/foo/bar';
const transport = new WebTransport(url);
// Once .ready fulfills, the connection can be used.
await transport.ready;