#sockets #tungstenite #tokio #web

ws-endpoint

用 Rust 实现的 WebSocket API 端点

1 个不稳定版本

0.1.0 2020 年 7 月 8 日

#7#tungstenite

MIT 许可证

12KB
188

WebSocket 端点

一个基于 tokio 和 tungstenite 的通用异步 WebSocket 端点实现。这实际上不是一个真正的库,而是为想要提供请求/响应 API 的基于 WebSocket 的应用程序提供的构建块。

要使用它,只需创建一个新的 WsEndpoint 实例,并使用适当的处理器(一个接收请求,例如 JSON 字符串,并返回编码响应的函数)启动它,使其在您想要的套接字地址上运行。

以下是一个最小示例(可能已过时,请检查 'echo' 示例以获取最新版本)

extern crate ws_endpoint;

use std::io;
use ws_endpoint::WsEndpoint;

#[tokio::main]
async fn main() -> io::Result<()> {
    let endpoint = WsEndpoint::new_sync_text_endpoint(process);
    endpoint.start("127.0.0.1:5000").await
}

async fn process(request: String) -> Option<String> {
    // We are just echoing here.
    // In a real world scenario this would be
    // the place to parse and process the
    // request and return a proper response.
    let response = request;

    Some(response)
}

依赖项

~9.5MB
~193K SLoC