flare-core API 参考(集成向)
完整签名见 docs.rs/flare-core。以下为 IM 集成最常接触的入口。
构建模式
| 模式 | 类型 | 场景 |
|---|
| Flare | FlareServerBuilder / FlareClientBuilder | 生产推荐,统一生命周期 |
| Observer | ObserverServer / ObserverClient | 细粒度事件回调 |
| Simple | SimpleServer / SimpleClient | 示例与原型 |
| Builder | ServerBuilder / ClientBuilder | 闭包式自定义 |
服务端(Flare)
use flare_core::server::FlareServerBuilder;
use flare_core::server::events::handler::ServerEventHandler;
use std::sync::Arc;
let server = FlareServerBuilder::new("0.0.0.0:8080", Arc::new(handler)).build()?;
server.run().await?;
ServerEventHandler(节选)
| 方法 | 说明 |
|---|
handle_message | 收到 Payload 帧,可返回应答 Frame |
on_connect / on_disconnect | 连接生命周期 |
| 认证扩展 | 实现 Authenticator 校验 Token |
客户端
use flare_core::client::FlareClientBuilder;
use flare_core::common::config_types::TransportProtocol;
let client = FlareClientBuilder::new()
.url("wss://gateway.example.com")
.protocols(vec![TransportProtocol::WebSocket, TransportProtocol::Quic])
.race_timeout(Duration::from_secs(5))
.token("Bearer …")
.build()
.await?;
| 配置项 | 说明 |
|---|
protocols | 多协议列表,客户端竞速选最快链路 |
race_timeout | 竞速超时 |
device_id | 多设备策略、冲突处理 |
| 压缩/序列化 | Protobuf / JSON,Gzip / Zstd 协商 |
协议帧
Frame:传输层封装PayloadCommand:业务载荷(IM 场景由上层或 flare-signaling 解析)
自建协议时只需保证 长连接稳定 + 心跳 + 鉴权;IM 语义放在 flare-im-core-sdk / 服务端。
与 flare-im-core 的关系
| 组件 | 使用 flare-core |
|---|
| flare-signaling/gateway | WS/QUIC 接入 |
| flare-im-core-sdk | 内嵌 HybridClient |
错误处理
统一 flare_core::common::error::Result / FlareError;集成时记录 connection_id 与 trace_id。
下一步