SDK · Dart/Flutter
imcore_sdk 是 imcore IM 服务端的纯 Dart 客户端 SDK。WebSocket + JSON,可用于 Flutter(iOS/Android/桌面)、Dart CLI/服务端、Dart web。唯一运行时依赖:web_socket_channel。
引入
# pubspec.yaml
dependencies:
imcore_sdk:
path: ../path/to/clients/dart/imcore_sdk # 或 git/hosted 引用
用法
import 'package:imcore_sdk/imcore_sdk.dart';
final im = ImcoreClient(
url: 'wss://your-host/acc',
auth: AuthConfig(
token: '<jwt>', // 或 tokenProvider: () async => ...
login: LoginPayload(userId: '1001', userName: 'alice'),
),
// heartbeatInterval / requestTimeout / reconnect / clock / socketFactory 均为可选。
);
im.onStatus((s) => print('status $s')); // idle/connecting/open/authenticated/closed
im.on('chat_message', (payload) => print('msg $payload'));
im.onReconnected(() {
// 在此重新拉取会话列表 + 游标历史(v1 不会自动对账)
});
// connect() 在服务端确认登录后才 resolve;若登录被拒(如 token 无效)会 THROW —— 务必包裹。
try {
await im.connect();
} on RequestError catch (e) {
print('login failed: $e');
}
await im.dm.send(targetUserId: '1002', text: 'hi');
final history = await im.dm.history(targetUserId: '1002', limit: 20);
// 任意尚未封装的命令的逃生通道:
await im.request<Map<String, dynamic>>('chat_group_create', {'name': 'team'});
im.send('chat_dm_typing', {'targetUserID': '1002'});
能力范围(v1)
传输内核 + seq 关联的请求/响应 + 登录确认门控的自动登录 + 类型化的 DM/群/聊天室 发送/接收/历史。不含: 本地缓存/离线对账、媒体上传辅助、E2EE、离线推送注册、Flutter 组件。
v1 集成测试经环境变量开关启用,尚未对生产服务端做端到端验证;接入前请先对你自己的部署验证。