WTransport 简介:Rust 中的 WebTransport 库

WebTransport 是 Websockets 的现代升级版,使用 http3 在客户端和服务器之间传输数据。

WTransport 是用 Rust 编写的 http3 WebTransport 实现。

WTransport 简介:Rust 中的 WebTransport 库

GitHub地址:https://github.com/BiagioFesta/wtransport

WebTransport 的优势:

  • 低延迟: WebTransport 的设计旨在最大限度地减少延迟,使其适用于游戏、视频流和协作编辑等实时应用。
  • 双向通信: WebTransport 允许客户端和服务器之间同时进行数据交换,无需多次请求即可实现高效的来回通信。
  • 多路复用: 利用 WebTransport,可以在单个连接上复用多个数据流,从而减少开销并提高性能。
  • 安全性: WebTransport 受益于网络平台提供的安全功能,包括传输加密和同源策略。

WTransport 的简单 API

WTransport 有服务器和客户端两种实现方式。具体如下:

  • 服务器
#[tokio::main]
async fn main() -> Result<()> {
    let config = ServerConfig::builder()
        .with_bind_default(4433)
        .with_certificate(certificate)
        .build();

    let connection = Endpoint::server(config)?
        .accept()
        .await     // Awaits connection
        .await?    // Awaits session request
        .accept()  // Accepts request
        .await?;   // Awaits ready session

    let stream = connection.accept_bi().await?;
    // ...
}
  • 客户端
#[tokio::main]
async fn main() -> Result<()> {
    let config = ClientConfig::default();

    let connection = Endpoint::client(config)?
        .connect("https://[::1]:4433")
        .await?;

    let stream = connection.open_bi().await?.await?;
    // ...
}

开始

GitHub 中有一个完整的示例,你可以在其中启动一个服务器和一个 Chrome 浏览器实例,通过 h3 WebTransport 协议相互通信。

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/im/37243.html

(0)

相关推荐

发表回复

登录后才能评论