SDK · Kotlin/Android
imcore-sdk 是 imcore IM 服务端的 Kotlin/JVM 客户端 SDK。基于协程的 WebSocket + JSON,可用于 Android 应用与 JVM 服务。默认通过 OkHttp 提供 WebSocket。
引入(Gradle)
dependencies {
implementation(project(":imcore-sdk")) // 或已发布的坐标
}
引入的运行时依赖:kotlinx-coroutines-core、kotlinx-serialization-json、okhttp。
用法
import com.imcore.sdk.*
import kotlinx.coroutines.launch
import kotlinx.serialization.json.*
val im = ImcoreClient(
url = "wss://your-host/acc",
auth = AuthConfig(token = "<jwt>", login = LoginPayload(userId = "1001", userName = "alice")),
)
// 用 Flow 观察推送与状态(在你自己的 scope 内 collect):
scope.launch { im.events("chat_message").collect { msg -> println("msg $msg") } }
scope.launch { im.status.collect { s -> println("status $s") } } // Idle/Connecting/Open/Authenticated/Closed
scope.launch { im.reconnected.collect { /* 重新拉取会话 + 游标历史 */ } }
// connect() 在服务端确认登录后才返回;若登录被拒(如 token 无效)会 THROW —— 务必包裹。
try {
im.connect()
im.dm.send(targetUserId = "1002", text = "hi")
val history = im.dm.history(targetUserId = "1002", limit = 20)
// 任意尚未封装的命令的逃生通道:
im.request("chat_group_create", buildJsonObject { put("name", "team") })
im.send("chat_dm_typing", buildJsonObject { put("targetUserID", "1002") })
} catch (e: RequestError) {
println("imcore error: ${e.message}")
}
能力范围(v1)
传输内核 + seq 关联的请求/响应 + 登录确认门控的 connect + 类型化的 DM/群/聊天室 发送/接收/历史。不含: 本地缓存/离线对账、媒体上传辅助、E2EE、FCM 推送、Compose 封装。
v1 集成测试经环境变量开关启用,尚未对生产服务端做端到端验证;接入前请先对你自己的部署验证。