WebTransport
WebTransportはHTTP/3を基盤とするネットワーク転送プロトコルで、クライアントとサーバー間の双方向通信機能を提供し、低遅延、高スループット、セキュリティを兼ね備えています。
適用シナリオ
WebTransportは特に以下のようなシナリオに適しています:
- リアルタイムアプリケーション:オンラインゲーム、リアルタイムコラボレーションツール、ビデオ会議など、低遅延通信を必要とするアプリケーション
- 大容量ファイル転送:高スループットのデータ転送をサポートし、メディアストリーミングや大容量ファイルのアップロード・ダウンロードに適しています
- 多重化通信:複数の双方向および単方向データストリームを同時に確立できます
- データグラム通信:順序保証や信頼性を保証しないデータグラム通信をサポートし、リアルタイム性が極めて高いシナリオに適しています
WebSocketと比較して、WebTransportはより低い遅延とより柔軟な通信モードを提供し、特に不安定なネットワーク環境で優れたパフォーマンスを発揮します。
Salvoの実装
SalvoフレームワークはWebTransportの組み込みサポートを提供し、開発者がWebTransportベースのアプリケーションを簡単に構築できるようにします。主な機能は以下の通りです:
- WebTransportセッションの確立をサポート
- 双方向ストリーム(Bidirectional Streams)通信をサポート
- 単方向ストリーム(Unidirectional Streams)通信をサポート
- データグラム(Datagrams)転送をサポート
- サーバーが能動的に通信ストリームを開始可能
簡単な例
以下はSalvoを使用したWebTransportサーバーの簡略化された例です:
設定と起動
WebTransportをサポートするSalvoアプリケーションを起動するには、TLS証明書とQUICリスナーの設定が必要です:
完全な例
SalvoにおけるWebTransportの使用方法について詳しく知りたい場合は、GitHub上の完全な例を参照してください: https://github.com/salvo-rs/salvo/blob/main/examples/webtransport
この例にはサーバーサイドとクライアントサイドの完全な実装が含まれており、様々なタイプのWebTransport通信の処理方法を示しています。