1个不稳定版本
0.2.0 | 2024年7月20日 |
---|
#183 在 HTTP客户端
每月170次下载
25KB
467 行
SRS客户端
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
- 作为HTTP客户端与SRS HTTP API交互
- 处理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