WuKongIM Docs

运行官方示例

准备服务端与两个账号,运行八个平台的示例并确认在线双向消息。

编辑此页报告文档问题

先让 Alice 与 Bob 在两个客户端里互发消息,再把对应教程的代码接入应用。以下示例只需要你选择一个平台;两个客户端也可以使用不同平台。

1. 准备开发用单节点集群

Docker 部署启动 WuKongIM 开发用单节点集群,确认 WebSocket 端口 5200 和 Product HTTP 端口 5001 可达。默认使用 256 Hash Slots。保持服务端运行,在受信开发终端检查:

curl -fsS http://127.0.0.1:5001/readyz

就绪请求应成功。开发地址默认是 ws://127.0.0.1:5200,仅在 listener 或反向代理配置了 /ws 时追加该路径。客户端侧生产连接使用 WSS;管理接口留在可信后端。

2. 准备 Alice 与 Bob

先确定设备类别。 下方请求以移动端 0 为例。Web 改为 1,Rust/C#/C++/Python 改为 2;两个客户端平台不同,就分别填写各自的值。alice-tokenbob-token 仅用于本机演示。

由受信业务后端为两个用户准备各自的 uidtoken 和 WebSocket 地址。只在本机回环开发环境中,可以由受信终端调用 POST /user/token 建立测试身份。以下以两个原生客户端为例;如果某个用户由 Web example 登录,把该用户的 device_flag 改为 1

curl -fsS -X POST http://127.0.0.1:5001/user/token \
  -H 'Content-Type: application/json' \
  -d '{"uid":"alice","token":"alice-token","device_flag":0,"device_level":1}'

curl -fsS -X POST http://127.0.0.1:5001/user/token \
  -H 'Content-Type: application/json' \
  -d '{"uid":"bob","token":"bob-token","device_flag":0,"device_level":1}'

iOS、Android、Flutter 默认 APP 0,Web 默认 WEB 1,Rust、C#、C++、Python 默认 PC 2。默认产品装配会精确校验相同 UID 与设备类别的已存 Token;生产部署仍需保护该接口、实现过期与轮换策略,并单独证明无效、撤销和按业务规则过期的 Token 会被拒绝。

根据客户端运行位置填写 WebSocket 地址:

客户端本机开发地址
浏览器、Node.js、macOS App、iOS Simulatorws://127.0.0.1:5200
Android Emulatorws://10.0.2.2:5200
物理手机ws://<开发机局域网 IP>:5200,并确认防火墙与路由可达

3. 选择并运行示例

先准备目标平台的开发工具。下面的源码示例固定在指定版本;应用通过包管理器接入时,使用对应快速接入页的安装命令。

iOS

git clone https://github.com/WuKongIM/WuKongEasySDK-iOS.git
cd WuKongEasySDK-iOS
git checkout v1.1.1
swift build -c release
cd Examples/WuKongIMExample-Unified
./build.sh macos
./build.sh ios

先启动一个 iOS Simulator,再运行:

./build.sh ios --run

也可以用 ./build.sh macos --run 启动 macOS 版本。示例中的 iOS ATS 明文例外只用于本地 ws:// 开发,不能复制到生产 App。

iOS 快速接入

Android

git clone https://github.com/WuKongIM/WuKongEasySDK-Android.git
cd WuKongEasySDK-Android
git checkout v1.0.5
./gradlew :example:assembleDebug
./gradlew :example:installDebug

在 API 21+ 设备或模拟器中启动 example。Android Emulator 连接宿主机时使用 ws://10.0.2.2:5200,不是 localhost。需要两个原生身份时使用两台设备或两个独立模拟器;也可以让浏览器 example 作为另一端。

Android 快速接入

Flutter

git clone https://github.com/WuKongIM/WuKongEasySDK-Flutter.git
cd WuKongEasySDK-Flutter
git checkout v1.1.0
flutter pub get
cd example
flutter pub get
flutter devices
flutter run -d <device-id>

为每个实际发布目标分别运行,不要用 iOS Simulator 结果替代 Android、Web 或桌面端验收。

Flutter 快速接入

Web

git clone https://github.com/WuKongIM/WuKongEasySDK-JS.git
cd WuKongEasySDK-JS
git checkout v2.0.5
npm ci
npm run build
python3 -m http.server 8080

打开 http://127.0.0.1:8080/example/。用两个隔离的浏览器上下文分别填写 Alice 与 Bob;不要在 Console 中打印 Token 或完整 Payload。

Web 快速接入

Rust

需要 Rust 1.86+。检出与 crates.io 0.1.0 对应的源码:

git clone --branch v0.1.0 --depth 1 https://github.com/WuKongIM/WuKongEasySDK-Rust.git
cd WuKongEasySDK-Rust
cargo build --locked --example chat

两个终端分别设置 WK_WS_URLWK_UIDWK_TOKENWK_PEER_UID,执行 cargo run --locked --example chat。双方连接成功后输入文本,观察接收事件;输入 /quit 退出。

Rust 快速接入

C#

C# 快速接入 的完整 Program.cs 创建 MyChat,安装公共 NuGet 1.0.0。两个终端分别设置 WUKONGIM_WS_URLWUKONGIM_UIDWUKONGIM_TOKEN

# Alice
dotnet run --project MyChat -- bob
# Bob
dotnet run --project MyChat -- alice

两端显示 Connected. 后按 Enter 发送,观察对端的 Message received.,完成双向检查后再次按 Enter 退出。

C# 快速接入

C++

C++ 快速接入 用 vcpkg 构建 my_app,或用预编译包的 wukong_chat。前者设置 WKIM_URLWKIM_UIDWKIM_TOKEN 后执行 ./build/my_app bob(Bob 改为 alice);后者设置 WKIM_TOKEN,执行 ./build/wukong_chat ws://127.0.0.1:5200 alice bob

my_app 等两端连接后按 Enter 发送,再按 Enter 退出;wukong_chat 允许连续输入消息,/quit 退出。Windows 可执行文件位于 build/Release/ 并带 .exe 后缀。

C++ 快速接入

Python

在 Python 3.11+ 虚拟环境中运行:

python -m pip install --index-url https://pypi.org/simple "wukong-easy-sdk==0.1.0"
git clone --branch v0.1.0 --depth 1 https://github.com/WuKongIM/WuKongEasySDK-Python.git
python WuKongEasySDK-Python/examples/chat.py

运行前分别设置 WKIM_URLWKIM_UIDWKIM_TOKENWKIM_PEER。双方出现 Connected 后输入文本;/quit 退出。

Python 快速接入

4. 检查结果并退出

  1. 两端各自显示连接成功。
  2. Alice 发送后看到服务端发送结果;Bob 的消息事件显示 Alice 的消息。
  3. Bob 回发,Alice 也能收到。
  4. 按平台说明退出或关闭页面,再次进入时没有重复事件或旧连接。

示例界面可以展示测试消息正文,生产日志不要记录 Token 或完整消息。

常见问题

无法连接:先检查 /readyz、设备可达地址与端口。Android Emulator 使用 10.0.2.2,真机使用开发机局域网地址。

认证失败:核对 UID、Token 和 device_flag,两端使用不同 UID。

发送成功但对端没收到:确认对端已在线、发送目标是对方 UID,且事件监听已注册。SENDACK 不是对端接收证明。

离线后缺消息:EasySDK 不补拉历史;需要业务后端恢复或选择完整版 SDK。

下一步

选择平台接入应用。历史版本、源码与正式包的独立运行结果见工程验证记录;实际部署继续检查 WSS、Token 轮换与故障恢复。

本页内容