OBConn
基于Rust的异步WebSocket客户端库,用于OneBot协议通信。
安装
cargo add obconn
使用方法
创建连接
let ob_conn = OBConn::new("ws://你的服务器:端口", Some("你的访问令牌")).await;
ob_conn.connect().await?;
检查连接状态
if ob_conn.is_connected().await {
println!("已连接到服务器");
} else {
println!("未连接到服务器");
}
调用API
let data = serde_json::json!({
"action": "get_login_info",
"params": {}
});
let response = ob_conn.call_api(&data).await?;
println!("API响应: {:?}", response);
监听事件
loop {
match ob_conn.get_event().await {
Ok(event) => {
println!("收到事件: {:?}", event);
},
Err(err) => {
println!("接收事件时出错: {:?}", err);
break;
}
}
}
断开连接
ob_conn.disconnect().await;
示例
use obconn::OBConn;
#[tokio::main]
async fn main() -> Result<(),Box<dyn std::error::Error>> {
let ob_conn = OBConn::new("ws://服务器:端口", Some("访问令牌")).await;
ob_conn.connect().await?;
if ob_conn.is_connected().await {
println!("成功连接到服务器");
}
let data = serde_json::json!({
"action": "get_version_info",
"params": {}
});
let response = ob_conn.call_api(&data).await?;
println!("版本信息: {:?}", response);
loop {
let event = ob_conn.get_event().await?;
println!("事件: {:?}", event);
}
Ok(())
}
注意事项
没有自动重连,你可以启动一个线程然后每几秒钟判断一下连接是否断开了。
许可证
MIT许可证