flare-core 快速开始
1. 添加依赖
[dependencies]
flare-core = "1.1"
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
2. 最小服务端(Flare 模式)
use async_trait::async_trait;
use flare_core::common::protocol::{Frame, PayloadCommand};
use flare_core::server::events::handler::ServerEventHandler;
use flare_core::server::FlareServerBuilder;
use std::sync::Arc;
struct Handler;
#[async_trait]
impl ServerEventHandler for Handler {
async fn handle_message(
&self,
_command: &PayloadCommand,
_connection_id: &str,
) -> flare_core::common::error::Result<Option<Frame>> {
Ok(None)
}
}
#[tokio::main]
async fn main() -> flare_core::common::error::Result<()> {
let server = FlareServerBuilder::new("0.0.0.0:8080", Arc::new(Handler)).build()?;
// start() 启动监听后即返回,不阻塞;进程需要自己保持存活。
server.start().await?;
tokio::signal::ctrl_c().await.expect("等待 Ctrl-C");
server.stop().await
}
3. 客户端连接(概念)
使用 ClientBuilder 或 FlareClientBuilder 指定:
- 服务端地址(
ws:///wss:/// QUIC) - 协议列表与竞速超时
- Token / 设备 ID(与业务鉴权对接)
完整示例见仓库 examples/。
4. 与 Flare IM 栈的关系
| 组件 | 使用 flare-core 的方式 |
|---|---|
| flare-signaling/gateway | 生产级 WS/QUIC 接入 |
| flare-im-core-sdk | 内嵌客户端传输,上层封装 IM 语义 |
若下一步需要 消息 seq 与会话同步,请转向 flare-im-core-sdk 概览 或 集成路径。
5. 检查清单
- [ ] 已选构建模式(Flare / Observer / Builder)
- [ ] TLS 与 Token 策略与业务一致
- [ ] 心跳与空闲断开参数符合负载均衡 / NAT 环境