示例工程

示例工程按平台组织,全部使用公开 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)}'