WuKongIM Docs

WuKongEasySDK

选择 iOS、Android、Flutter 或 Web 快速接入,使用固定版本完成 Alice 与 Bob 的在线双向消息闭环。

编辑此页报告文档问题

WuKongEasySDK 通过 WebSocket JSON-RPC CONNECT 提供轻量连接与在线消息 API。它适合已经拥有业务后端、希望自己维护界面和产品状态的应用。

选择平台,发送第一条消息

完成对应教程后,你会让 Alice 与 Bob 分别连接,在个人 Channel 中双向发送一个文本 JSON Payload,并在退出时正确移除监听器和连接。

先判断是否适合

选择 EasySDK,如果你只需要选择完整版 WuKongIMSDK,如果你还需要
WebSocket 连接与自动重连本地消息数据库与离线恢复
单聊或群聊 Channel 的在线消息会话列表、未读数与消息同步
发送结果和实时消息事件推送、多设备与完整平台能力
自己维护 UI、持久化和业务回执SDK 承担更多客户端消息状态

EasySDK 不是聊天 UI,也不是完整产品后端。send 成功表示服务端返回了发送结果,不表示对方已经收到、展示或处理消息。需要完整能力时,回到 SDK 选择

开始前:由业务后端提供连接材料

客户端不应该创建自己的身份或调用 Product HTTP 管理接口。用户登录产品后,受信业务后端通过 HTTPS 返回最小连接材料:

{
  "uid": "alice",
  "token": "short-lived-token",
  "websocketUrl": "wss://im.example.com/ws"
}
字段所有者与约束
uid业务后端确认的稳定用户标识;Alice 与 Bob 必须不同
token短期、可撤销,只用于当前身份连接;不能授予 Product HTTP 管理权限
websocketUrl后端从部署配置或安全路由结果中选择;生产环境使用 wss://

先完成认证与 Token。当前默认组合不会因为 /user/token 保存成功就自动获得生产级 CONNECT 校验;部署必须接入可信验证器,并证明无效、过期和撤销 Token 会被拒绝。

Alice 与 Bob 验收闭环

四个平台遵循同一条最小路径:

  1. 为 Alice 和 Bob 分别取得自己的 uid、短期 tokenwebsocketUrl
  2. 在两个独立设备、进程或浏览器上下文中按平台教程创建客户端;
  3. 两端都观察到连接成功后,Alice 向个人 Channel bob 发送文本 JSON Payload;
  4. Alice 保存发送结果,Bob 在实时消息事件中核对 fromUid、Channel 与 Payload;
  5. Bob 向 Alice 回发,验证反向链路;
  6. 退出页面或账号,移除监听器并断开连接,确认没有重复事件或后台连接。

这个闭环只验证在线消息。发送确认、实时接收与业务完成是三个不同状态,具体建模见消息收发

希望先验证环境时,直接按运行官方示例使用已通过的服务端和客户端 revision,不必先把教学代码移入自己的应用。

四端生命周期差异

任务iOSAndroidFlutterWeb
创建与初始化应用级 WuKongEasySDK 实例进程单例 getInstance() + init应用级单例 + init每个身份或浏览器上下文一个 WKIM 实例
监听器归属保存 EventListener token保存同一个 listener 对象保存同一个回调引用on / off 使用同一个函数引用
允许发送onConnectCONNECTconnect 事件后Connect 事件后
退出账号移除 token 并 disconnect移除监听并断开;账号切换需处理单例限制移除监听、disconnectdisposeoffdestroy

页面可以订阅连接状态,但不应因为页面重建而创建第二条连接。平台教程中的完整最小代码分别展示了正确的 owner 和清理位置。

上线前还要完成

  • 使用 WSS,并验证证书、反向代理 WebSocket Upgrade 与设备侧可达性;
  • 验证 Token 过期、撤销、错误身份和重放都会被拒绝;
  • 在 Release 构建中保持 SDK 诊断关闭,并用非生产 canary 检查设备日志、Console、崩溃报告和采集器;
  • 分别验收断网重连、离线恢复、去重、推送、多设备、容量、监控、升级与回滚;
  • 记录服务端 revision、SDK 版本、平台、设备和网络环境,不把一次开发闭环当作生产 receipt。

继续使用上线检查关闭这些门禁。

版本与证据

四端源码 example 与正式发布包均已跑通

2026 年 8 月 31 日,四个官方 example 连接 WuKongIM 5676700d2dc966fa6fc9b2f0620a6ae429adad5a 完成源码运行;9 月 1 日,npm 2.0.4、Maven Central 1.0.5、CocoaPods 1.1.1 与 pub.dev 1.1.0 又连接 PR 最终 HEAD 1c9430f15fc8844e7025df07d54ab6e80e026414 的测试合并服务端 35f314cc2512f3f0f5d55d9677e817cb64129985,完成 Alice/Bob 在线双向消息和断开清理。托管任务见正式包验收运行,浏览器包另在 Chrome 151 通过。这仍不是物理真机、WSS、离线能力或生产 Token 校验凭据。

平台已验证 example revision与正式版本的关系
Weba055b3667247333b6b3183249f5d5929673dfd53已包含在正式 v2.0.4
Android7134bbd0263fd01d9e7f71b7bd05b226f75b2292已包含在正式 v1.0.5
iOS40014c16c0becd390c105098d359048901f4d87c已包含在正式 v1.1.1
Flutter98ab8f3d9a1ad53f40c32caef0979845a37ae9a6与正式 v1.1.0 相同

源码和正式包仍是两类证据

上表证明精确源码 example;正式包运行证明 Registry 实际解析到的归档。新补丁版本已经包含这些源码修复并通过正式包验收,但记录结果时仍要同时保留源码 revision、包版本、服务端 revision 与运行环境。

当前正式发布版本

平台固定版本与源码 revision正式分发
iOSv1.1.1 · ca688fcac2c4cd8d6f8e8163faf165376b520ba9Release · CocoaPods
Androidv1.0.5 · 61ae6dc6d0077b15e47cda1fd530296b97a06a7aRelease · Maven Central
Flutterv1.1.0 · 98ab8f3d9a1ad53f40c32caef0979845a37ae9a6Release · pub.dev
Webv2.0.4 · 9c03c98c725982fac224cd1d3b52456eae983975Release · npm

正式包运行凭据

平台精确 Registry 产物运行环境结果
Webeasyjssdk@2.0.4Chrome 151;托管 Node.js 对端双向消息、SENDACK 与断开通过
Androidcom.githubim:easysdk-android:1.0.5Android 14 / API 34 EmulatorMaven 解析、instrumentation 双向消息与断开通过
iOSWuKongEasySDK 1.1.1iOS SimulatorCocoaPods 解析、双向消息与断开通过
Flutterwukong_easy_sdk 1.1.0iOS Simulatorpub.dev hosted 解析、双向消息与断开通过

应用依赖只使用这些精确版本,不使用 latest 或宽松版本范围。四个正式版本都已包含默认关闭、输出脱敏的日志安全修复:

平台修复来源
iOSPR #3 · b7ec4440b940539bee213f95a3be74948f4b9fb8
AndroidPR #3 · e984c7374a0e11f5d109ad3dbfdea599907735ff
FlutterPR #3 · d7758c301e5289ddfa09cd09b6976c2479584b1c
WebPR #6 · 3ebf505734c5b6764b30eac011f0b7a5024c89e8

当前教程的任务顺序校准自旧版 EasySDK 概览iOSAndroidFlutterWeb 页面;API、版本与安全边界以上表的正式源码和分发产物为准。

下一步

运行官方示例,再选择目标平台完成应用接入。需要离线消息、会话、未读和更完整的平台 API 时,改用完整版 SDK

本页内容