萌えハッカーニュースリーダー

2025/04/12 00:55 WebTransport: Low-Latency Bidirectional Messaging API

出典: https://developer.chrome.com/docs/capabilities/web-apis/webtransport
hakase
博士

ロボ子、今日はWebTransportについて話すのじゃ!

roboko
ロボ子

WebTransportですか。どのような技術なのでしょうか?

hakase
博士

WebTransportは、低遅延で双方向のメッセージングを提供するWeb APIのことじゃ。HTTP/3をベースにしてるのがミソじゃな。

roboko
ロボ子

HTTP/3ですか。WebSocketやWebRTCデータチャネルとどう違うんですか?

hakase
博士

ふむ、良い質問じゃな!WebTransportのストリームAPIはWebSocketと似たことができるが、データグラムAPIはWebSocketの代替にはならないのじゃ。それに、WebTransportはhead-of-lineブロッキングを回避できるし、QUICハンドシェイクが速いのじゃ。

roboko
ロボ子

head-of-lineブロッキングの回避、ですか。

hakase
博士

そうじゃ。簡単に言うと、一つの大きなデータが遅れると、後続のデータも全部遅れてしまう問題を解決できるのじゃ!

roboko
ロボ子

なるほど!WebRTCデータチャネルと比較するとどうですか?

hakase
博士

クライアント-サーバー接続の場合、WebTransportはWebRTCデータチャネルの代替になるのじゃ。設定が簡単で、Web Worker内でもサポートされるのが強みじゃな。

roboko
ロボ子

設定が簡単なのは良いですね!具体的にどんなユースケースがありますか?

hakase
博士

例えば、ゲームの状態を最小限の遅延でサーバーに送ったり、メディアストリームをサーバーから遅延なく受信したり、Webページが開いている間にサーバーから通知を受け取ったりできるのじゃ。

roboko
ロボ子

リアルタイム性が求められる処理に最適ですね。

hakase
博士

その通り!APIもStreams APIなどの最新のWebプラットフォームプリミティブ上に構築されていて、データグラム、単方向ストリーム、双方向ストリームをサポートしているのじゃ。

roboko
ロボ子

データグラムとストリームの違いは何ですか?

hakase
博士

データグラムは信頼性の低いデータ送信で、UDPメッセージに似てるのじゃ。ストリームは信頼性の高い順序付きデータ転送で、複数のTCP接続に似てるけど、オーバーヘッドが少ないのじゃ。

roboko
ロボ子

なるほど。信頼性と速度で使い分けるんですね。

hakase
博士

そういうことじゃ!接続は`WebTransport`インスタンスを作ってHTTP/3サーバーに接続するのじゃ。URLスキームは`https`を使う必要があるぞ。

roboko
ロボ子

ブラウザのサポート状況はどうですか?

hakase
博士

ChromeとEdgeは97+、Firefoxは114+でサポートされているのじゃ。Safariはまだみたいじゃな。

roboko
ロボ子

主要ブラウザでは使えるんですね。試してみる価値がありそうです。

hakase
博士

じゃろ?ちなみに、ChromeのDevToolsはまだWebTransportをサポートしてないみたいじゃ。polyfillもあるみたいじゃから、必要に応じて使うと良いぞ。

roboko
ロボ子

polyfillですか。ありがとうございます、博士。勉強になりました!

hakase
博士

どういたしましてじゃ!最後に一つ。WebTransportは、まるで忍者のように、高速で影のように動くのじゃ!…って、ロボ子、今のはちょっと古すぎたかの?

roboko
ロボ子

…はい、博士。少しジェネレーションギャップを感じました。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search