Client SDK 使用指南
本文说明一期 Client SDK 的核心使用方式:创建客户端、初始化、登录、监听事件、读取会话、发送消息、同步和释放资源。
一期平台:Web、Tauri、iOS、Flutter、Android。方法参数可在 API 浏览器 查询。
选择平台
| 平台 | 推荐 SDK | 异步风格 |
|---|---|---|
| Web / TypeScript | @flare-im/sdk/web | Promise + subscription |
| Tauri | @flare-im/sdk/tauri | Promise + event |
| iOS / Swift | flare-core-apple-sdk | async throws + callback |
| Flutter / Dart | flare_core_flutter_sdk | Future + subscription |
| Android / Kotlin | flare-core-android-sdk | suspend + listener |
接入顺序
createClient()
register listeners
init(config)
login(request)
open conversations
send messages
sync when needed
logout()
dispose()
初始化
最小配置只需要服务地址和租户:
await client.init({
wsUrl: 'wss://im.example.com/ws',
httpUrl: 'https://im.example.com',
tenantId: 'default',
resourceProfile: 'mobile',
})
| 字段 | 说明 |
|---|---|
wsUrl | IM 长连接地址 |
httpUrl | HTTP API 地址 |
tenantId | 租户或应用空间 |
resourceProfile | mobile 或 desktop |
登录
await client.login({
userId: 'u_10001',
token: coreToken,
})
token 由业务服务端签发或换取。token 过期后刷新并更新:
client.events.onUserTokenExpired(async () => {
const nextToken = await refreshCoreToken()
await client.updateAccessToken({ accessToken: nextToken })
})
监听事件
先订阅,再初始化和登录:
const messageSub = client.events.onMessageReceived((event) => {
// event.message -> append to timeline
})
const connectSub = client.events.onConnectReady((event) => {
// update connection state
})
页面销毁或切换账号时取消订阅:
messageSub.unsubscribe()
connectSub.unsubscribe()
会话与消息
读取会话:
const conversations = await client.conversations.listConversationsByQuery({
limit: 30,
includeArchived: false,
})
打开时间线:
const timeline = await client.conversations.openConversationTimeline({
conversationId: 'c_10001',
limit: 30,
})
构建并发送文本消息:
const message = await client.messageBuilder.buildText({
conversationId: 'c_10001',
text: 'hello',
})
await client.messages.sendMessage({ message })
同步与诊断
| 需求 | 方法 |
|---|---|
| 同步会话摘要 | client.sync.syncConversationSummaries |
| 同步单个会话 | client.sync.syncConversation |
| 查询在线态 | client.presence.getUserPresence |
| 获取媒体地址 | client.media.getMediaUrl |
| 查看 SDK 版本 | client.diagnostics.getSdkVersion |
错误和清理
业务层至少处理:
| 场景 | 处理 |
|---|---|
| 未初始化 | 回到 init 流程 |
| 未登录 | 重新 login |
| token 过期 | 刷新 token 并调用 updateAccessToken |
| 网络不可用 | 展示重连中或重试入口 |
| 发消息失败 | 保留本地消息并提供重试 |
退出:
messageSub.unsubscribe()
connectSub.unsubscribe()
await client.logout()
await client.dispose()
同一账号会话结束后不要继续复用旧 client 实例。