1个不稳定版本

0.2.0 2024年7月20日

#183HTTP客户端

Download history 45/week @ 2024-07-14 112/week @ 2024-07-21 13/week @ 2024-07-28

每月170次下载

自定义许可

25KB
467

SRS客户端

srs-client v0.2.0 (变更日志)

The SRS (Simple RTMP Server) Rust Client or srs-client is a Rust package that provides bindings for the main functionalities of the SRS server. It supports two modes of operation

  1. 作为HTTP客户端与SRS HTTP API交互
  2. 处理SRS HTTP回调

HTTP客户端模式

在此模式下,srs-client根据SRS HTTP API规范使用HTTP与服务器通信。

用法

要将srs-client用作HTTP客户端

use srs_client::{SrsClient, SrsClientError, SrsClientResp};
use std::env;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let srs_http_api_url = env::var("SRS_HTTP_API_URL").expect("SRS_HTTP_API_URL not set");
    let client = SrsClient::build(&srs_http_api_url)?;
    
    // Get SRS version
    let result: Result<SrsClientResp, SrsClientError> = client.get_version().await;
    println!("SRS version: {:?}", result);

    // Get streams
    let result: Result<SrsClientResp, SrsClientError> = client.get_streams().await;
    println!("Streams: {:?}", result);

    Ok(())
}

HTTP回调模式

在此模式下,srs-client提供结构体来处理SRS发送的回调。

用法

要处理SRS回调

use actix_web::{post, web};
use srs_client::{SrsCallbackEvent, SrsCallbackReq};

#[post("srs_callback")]
pub async fn on_callback(req: web::Json<SrsCallbackReq>) -> Result<&'static str, String> {
    match req.action {
        SrsCallbackEvent::OnConnect => {
            // Handle connection event
            dbg!(&req);
            Ok(())
        }
        _ => Ok(()),
    }
    .map(|()| "0")
}

功能

  • HTTP客户端模式

    • 检索服务器信息(版本、vhosts、流、客户端)
    • 监控系统统计信息(rusages、self_proc_stats、system_proc_stats、meminfos)
    • 管理客户端(踢出)
  • HTTP回调模式

    • 处理各种SRS事件(OnConnect、OnPublish等)

完整的API参考请这里查看。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
srs-client = "0.1.0"

贡献

欢迎贡献!请随时提交Pull Request。

许可

此项目遵循MIT许可

依赖关系

~4–16MB
~237K SLoC