示例工程
示例工程按平台组织,全部使用公开 SDK API,可直接复制到项目中使用。
目录结构
| 路径 | 内容 |
|---|---|
sdk/web/ | Web IMLib(rongim.mjs)、IMKit(imkit.mjs)、类型声明 |
sdk/electron/ | Electron 主进程服务、preload 桥、渲染进程示例 |
sdk/flutter/ | Flutter IMLib / IMKit 包与示例 |
sdk/android/ | Android IMLib / IMKit 模块与示例 |
sdk/native/ | C ABI 头文件与调用示例 |
demo/ | Web 端完整 Demo(IMKit 组件化) |
c-tests/ | C ABI 集成测试 |
最小可运行示例
import { createClient, ConversationType, Events } from '/sdk/web/rongim.mjs';
const client = createClient({ appkey: 'demo', serverUrl: location.origin });
await client.connect(token);
client.addEventListener(Events.MESSAGES, (messages) => console.log(messages));
await client.sendTextMessage(ConversationType.PRIVATE, 'bob', 'hello');final engine = await RCIMIWEngine.create(
'demo',
RCIMIWEngineOptions.create(naviServer: 'http://127.0.0.1:8080'),
);
final code = await engine.connect(token, 10);
if (code != 0) throw Exception('connect failed: $code');
await engine.sendTextMessage(1, 'bob', 'hello');im_client_t* c = im_client_new("demo", "http://127.0.0.1:8080");
im_client_connect(c, token, user_id, sizeof user_id);
im_client_send_text(c, 1, "bob", "hello", NULL, msg_id, sizeof msg_id);运行测试
Shell
# 服务端至少应返回健康检查 200
curl -sS http://127.0.0.1:8080/health
# 运行时契约自省(需要管理员密钥)
curl -sS -H 'X-Admin-Secret: dev-admin' http://127.0.0.1:8080/api/__contract/introspect | jq '{idlVersion, errors: (.errors|length)}'