19 个版本
0.1.3 | 2023年3月5日 |
---|---|
0.1.2 | 2023年3月5日 |
0.0.15 | 2023年3月5日 |
0.0.14 | 2022年7月18日 |
0.0.12 | 2021年10月17日 |
在 网络编程 中排名第 1831
每月下载 69 次
用于 gorgon
27KB
284 行
Cyberdeck
一个用于在 Rust 中轻松创建 WebRTC 数据通道连接的库。
cargo add cyberdeck
let mut peer = Peer::new(|peer_id, e| async move {
match e {
PeerEvent::DataChannelMessage(c, m) => {
println!(
"{}::Recieved a message from channel {} with id {}!",
peer_id,
c.label(),
c.id()
);
let msg_str = String::from_utf8(m.data.to_vec()).unwrap();
println!(
"{}::Message from DataChannel '{}': {}",
peer_id,
c.label(),
msg_str
);
}
PeerEvent::DataChannelStateChange(c) => {
if c.ready_state() == RTCDataChannelState::Open {
println!("{}::DataChannel '{}'", peer_id, c.label());
c.send_text("Connected to client!".to_string())
.await
.unwrap();
} else if c.ready_state() == RTCDataChannelState::Closed {
println!("{}::DataChannel '{}'", peer_id, c.label());
}
}
PeerEvent::PeerConnectionStateChange(s) => {
println!("{}::Peer connection state: {} ", peer_id, s)
}
}
})
.await?;
let answer = peer.receive_offer(&offer).await?;
信令服务器
WebRTC 以其最基本的形式通过客户端和服务器交换表示其网络信息的字符串来工作。信令服务器就是通过它交换这些信息的某些API。您可以在以下示例中看到使用单个 POST http 处理器实现的简单信令服务器 这里。
cargo run --example signaling_server
许可证
本项目可使用以下任一许可证:
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义的,您提交给 cyberdeck
的任何有意贡献,均应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~32–43MB
~843K SLoC