flare-im-core-sdk API 参考
以 IMClient 为唯一入口;完整 rustdoc 见仓库 cargo doc -p flare-im-core-sdk。
prelude
use flare_im_core_sdk::prelude::*;
生命周期
| API | 说明 |
|---|
IMClient::new() | 空句柄 |
IMClient::builder() | 自定义 Store / 中间件 |
init(env, overlay) | 配置与数据目录 |
login(user, token, db, hook) | 登录、建连、注册 EventBus |
logout() | 登出并释放连接 |
connect(user, token) | Builder 路径建连 |
disconnect() | 断开长连接 |
is_connected() / state() | 连接态 |
current_user_id() / session_generation() | 会话代际(多端切换) |
SdkConfig(Builder)
| 字段 | 说明 |
|---|
endpoint | WebSocket / QUIC 信令地址 |
http_endpoint | 业务 HTTP / 网关 |
tenant_id | 租户 |
data_root | 本地库目录 |
Facade API
| 方法 | 类型 | 说明 |
|---|
message() | MessageApi | 发送、查询、撤回 |
conversation() | ConversationApi | 会话列表与属性 |
media() | MediaApi | 上传下载 |
message_build() | MessageBuildApi | 构造各类 Elem |
capability() | CapabilityApi | 扩展能力调用 |
presence() | PresenceApi | 在线状态 |
同步(核心)
| API | 说明 |
|---|
sync_messages(conv_id, last_seq, limit) | 会话内增量消息 |
sync_conversation(conv_id) | 单会话全量/增量 |
sync_conversation_summaries_silent() | 后台会话摘要 |
conversation.mark_read(conv_id, read_seq) | 已读上报 |
spawn_background_sync_tasks(&["…"]) | 注册后台 SyncTask |
事件
| API | 说明 |
|---|
bus() / bus_sync() | EventBus 订阅下行 |
notification_handlers() | 系统通知扩展 |
登录回调中注册:
client.login("uid", Some("token"), LoginDbKind::Sqlite, |bus, _store| {
bus.on_message(|ev| { });
bus.on_connection(|ev| { });
Ok(())
}).await?;
MessageApi(常用)
| 方法 | 说明 |
|---|
send | 发送 IMMessage |
get / list | 本地库查询 |
mark_read | 消息级已读 |
recall / edit | 撤回、编辑(能力开启时) |
MessageBuildApi(常用)
text, image, file, custom, quote 等 → .build() -> IMMessage
强类型 ID
use flare_im_core_sdk::{ConversationId, UserId};
避免 conversation_id 与 user_id 混用。
C FFI / Tauri
| 路径 | 说明 |
|---|
bindings/c | flare_sdk_login, flare_sdk_sync_messages, … |
bindings/tauri | 桌面壳命令封装 |
错误码
FlareError / ErrorCode:如 NotConnected, InvalidArgument;与 flare-core 对齐。
相关文档