4 个版本 (2 个重大更新)
0.3.0 | 2022 年 7 月 28 日 |
---|---|
0.2.0 | 2022 年 7 月 8 日 |
0.1.1 | 2022 年 7 月 7 日 |
0.1.0 | 2022 年 7 月 7 日 |
#210 in WebSocket
每月 538 次下载
在 2 crates 中使用
64KB
1.5K SLoC
phyllo
使用 Actor 模型在 Rust 中实现的 Phoenix 通道。此 crate 通过提供 Socket 和 Channel 抽象来连接、接收和发送消息。整体结构基于 参考 JavaScript 客户端。
示例
警告:返回的结果可能包含 NSFW 链接或评论。
use serde_json::Value;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// The socket is generic over a Topic.
let mut socket = SocketBuilder::new(Url::parse("wss://furbooru.org/socket/websocket")?)
.build::<String>()
.await;
// Each channel is generic over an Event and Payload type.
// For simplicity we use serde_json::Value, but in your own code you should deserialize
// to something strongly-typed.
let (_channel, mut subscription) = socket
.channel::<String, Value, Value>(ChannelBuilder::new("firehose".to_string()))
.await?;
loop {
let v = subscription.recv().await?;
println!("{:?}", v);
}
}
特性
默认情况下未启用 TLS。要支持 TLS,请启用以下任一项
rustls-native-roots
(使用rustls-native-certs
进行根证书)rustls-webpki-roots
(使用webpki-roots
进行根证书)
许可证:MIT OR Apache-2.0
依赖项
~7–18MB
~271K SLoC