WebTransport
WebTransport はウェブトランスポート API のインターフェイスで、ユーザーエージェントが HTTP/3 サーバーに接続し、単方向または双方向で信頼性のあるトランスポートおよび信頼性のないトランスポートを開始し、接続が必要できなくなった時点で接続を閉じるための機能を提供します。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 97 | 97 | 114 | 26.4 | 97 | 26.4 | |
byob_readers BYOB読者サポート | 109 | 109 | 114 | 26.4 | 109 | 26.4 |
| WebTransport インターフェースの close() メソッドは、進行中の WebTransport セッションを終了します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransport インターフェースの closed 読み取り専用プロパティは、トランスポートが閉じられたときに解決する Promise を返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransport インターフェースの read-only プロパティである congestionControl は、データ送信時にアプリケーションがスループットを優先するか、レイテンシを優先するかを示します。 | | | 114 | 26.4 | | 26.4 |
| WebTransport インターフェースの createBidirectionalStream() メソッドは、双方向ストリームを非同期で開き、それを返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
createBidirectionalStream (options sendOrder parameter) `options.sendOrder` パラメータ | | | 119 | 26.4 | | 26.4 |
| WebTransport インターフェースの createUnidirectionalStream() メソッドは、一方向ストリームを非同期で開きます。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
createUnidirectionalStream (byob readers) BYOB読者サポート | 109 | 109 | 114 | 26.4 | 109 | 26.4 |
createUnidirectionalStream (options sendOrder parameter) `options.sendOrder` パラメータ | | | 119 | 26.4 | | 26.4 |
| WebTransport インターフェースの datagrams read-only プロパティは、データグラムの送受信(非信頼性データ転送)に使用できる WebTransportDatagramDuplexStream インスタンスを返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransport インターフェースの getStats() メソッドは、HTTP/3 接続の統計情報を含むオブジェクトを非同期で返します。 | | | 114 | 26.4 | | 26.4 |
| WebTransport インターフェースの `incomingBidirectionalStreams` 読み取り専用プロパティは、サーバーによって開かれた 1 つ以上の双方向ストリームを表します。このプロパティは、WebTransportBidirectionalStream オブジェクトの `ReadableStream` を返します。各ストリームを使用して、サーバーからデータを確実に読み取り、サーバーへデータを書き戻すことができます。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransport インターフェースの `incomingUnidirectionalStreams` 読み取り専用プロパティは、サーバーによって開かれた 1 つ以上の単方向ストリームを表します。このプロパティは、`WebTransportReceiveStream` オブジェクトの `ReadableStream` を返します。各ストリームを使用して、サーバーからデータを確実に読み取ることができます。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransport インターフェースの `ready` 読み取り専用プロパティは、トランスポートが使用可能になった時点で解決する Promise を返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransport インターフェースの read-only プロパティは、その接続が信頼性のあるトランスポートのみをサポートしているか、それとも信頼性のないトランスポート(UDP など)もサポートしているかを示します。 | | | 114 | 26.4 | | 26.4 |
| WebTransport() コンストラクタは、新しい WebTransport オブジェクトのインスタンスを作成します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
WebTransport (options allowPooling parameter) `options.allowPooling` パラメータ | | | 114 | 26.4 | | 26.4 |
WebTransport (options congestionControl parameter) `options.congestionControl` パラメータ | | | 114 | 26.4 | | 26.4 |
WebTransport (options requireUnreliable parameter) `options.requireUnreliable` パラメータ | | | 114 | 26.4 | | 26.4 |
WebTransport (options serverCertificateHashes parameter) `options.serverCertificateHashes` パラメータ | 100 | 100 | 125 | 26.4 | 100 | 26.4 |
| WebTransport API の WebTransportBidirectionalStream インターフェースは、サーバーまたはクライアントによって作成され、信頼性の高い転送に使用できる双方向ストリームを表します。このインターフェースは、受信データを読み取るための WebTransportReceiveStream および送信データを書き込むための WebTransportSendStream へのアクセスを提供します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportBidirectionalStream インターフェースの readable 読み取り専用プロパティは、受信データを確実に読み取るために使用できる WebTransportReceiveStream インスタンスを返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
readable (returns WebTransportReceiveStream) `WebTransportReceiveStream` を返します(以前の仕様では `ReadableStream` を返していました) | | | 114 | 26.4 | | 26.4 |
| WebTransportBidirectionalStream インターフェースの writableReadOnly プロパティは、送信データの書き込みに使用できる WebTransportSendStream インスタンスを返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
writable (returns WebTransportSendStream) `WebTransportSendStream` を返します(以前の仕様では `WritableStream` を返していました) | | | 114 | 26.4 | | 26.4 |
| WebTransport API の WebTransportDatagramDuplexStream インターフェースは、クライアントとサーバー間のデータグラムの非信頼性トランスポートに使用できる双方向ストリームを表します。このインターフェースは、受信データグラムを読み取るための ReadableStream、送信データグラムを書き込むための WritableStream、およびストリームに関連するさまざまな設定や統計情報へのアクセスを提供します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
byob_readers BYOB読者サポート | 109 | 109 | | 26.4 | 109 | 26.4 |
| WebTransportDatagramDuplexStream インターフェースの incomingHighWaterMark プロパティは、受信データチャンクのハイウォーターマークを取得または設定します。これは、受信側の ReadableStream の内部キューが満杯とみなされる前に到達し得る、チャンク単位での最大サイズです。詳細については、「内部キューとキューイング戦略」を参照してください。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportDatagramDuplexStream インターフェースの incomingMaxAge プロパティは、受信データグラムの最大有効期間(ミリ秒単位)を取得または設定します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportDatagramDuplexStream インターフェースの読み取り専用プロパティ `maxDatagramSize` は、`WebTransportDatagramDuplexStream.writable` に書き込むことができる送信データグラムの最大許容サイズ(バイト単位)を返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportDatagramDuplexStream インターフェースの outgoingHighWaterMark プロパティは、送信されるデータチャンクのハイウォーターマークを取得または設定します。これは、送信側の WritableStream の内部キューが満杯とみなされる前に到達し得る、チャンク単位での最大サイズです。詳細については、「内部キューとキューイング戦略」を参照してください。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportDatagramDuplexStream インターフェースの outgoingMaxAge プロパティは、送信データグラムの最大有効期間をミリ秒単位で取得または設定します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportDatagramDuplexStream インターフェースの readable 読み取り専用プロパティは、ストリームから受信したデータグラムを非信頼性モードで読み取るために使用できる ReadableStream インスタンスを返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransport API の WebTransportError インターフェースは、この API に関連するエラーを表します。このエラーは、サーバーエラー、ネットワーク接続の問題、またはクライアント側による中止操作(たとえば、WritableStream.abort() の呼び出しによるものなど)によって発生する可能性があります。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportError インターフェースの `source` プロパティは読み取り専用であり、エラーの原因を示す列挙値を返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportError インターフェースの read-only プロパティである streamErrorCode は、このエラーに対応するアプリケーションプロトコルのエラーコードを示す 0 から 255 までの数値を返します。エラーコードが存在しない場合は null を返します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransportError() コンストラクタは、新しい WebTransportError オブジェクトのインスタンスを作成します。 | 97 | 97 | 114 | 26.4 | 97 | 26.4 |
| WebTransport API の WebTransportReceiveStream インターフェースは、受信する一方向または双方向の WebTransport ストリームから読み取りを行うために使用できる ReadableStream です。 | | | 114 | 26.4 | | 26.4 |
| WebTransportReceiveStream インターフェースの getStats() メソッドは、現在のストリームの統計情報を含むオブジェクトを非同期で返します。 | | | 114 | 26.4 | | 26.4 |
| WebTransport API の WebTransportSendStream インターフェースは、一方向または双方向の WebTransport ストリームにおいて、送信データを転送するために使用される、特殊な WritableStream です。 | | | 114 | 26.4 | | 26.4 |
| WebTransportSendStream インターフェースの getStats() メソッドは、現在のストリームの統計情報を含むオブジェクトを非同期で返します。 | | | 114 | 26.4 | | 26.4 |
getWriter | | | 114 | 26.4 | | 26.4 |
| WebTransportSendStream インターフェースの sendOrder プロパティは、このストリームの送信優先度を、同様の値が設定されている他のストリームとの相対的な位置関係で示します。 | | | 121 | 26.4 | | 26.4 |
- このブラウザでは部分的にしか実装されていません
- `WebTransportSendStream` の代わりに `WritableStream` を返します。
- このブラウザでは部分的にしか実装されていません
- メソッドは定義されていますが、未実装のエラーが発生します。
基本構文
async function initTransport(url) {
// Initialize transport connection
const transport = new WebTransport(url);
// The connection can be used once ready fulfills
await transport.ready;
return transport;
} 実務での使いどころ
-
WebTransport の活用
WebTransport はウェブトランスポート API のインターフェイスで、ユーザーエージェントが HTTP/3 サーバーに接続し、単方向または双方向で信頼性のあるトランスポートおよび信頼性のないトランスポートを開始し、接続が必要できなくなった時点で接続を閉じるための機能を提供します。
注意点
- 古いブラウザでは対応していない場合がある。
実装メモ
- 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。