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 集成测试经环境变量开关启用,尚未对生产服务端做端到端验证;接入前请先对你自己的部署验证。