andrew_im_sdk
Andrew IM SDK for Flutter — HTTP + WebSocket client for real-time messaging, conversations, groups, audio/video calls and more.
0.1.8
What this package is like to depend on
Last release 25 days ago
29 Jul 2026
Too new to tell
only 1 release windows
Nearly every release is documented
notes for 10 of 11 stable releases
Nothing withdrawn
no release was ever pulled
1 months old
11 releases · first in 2026
11 releases in the last 12 months
see the full history below
Release timeline
11 releases · Jul 2026 to Jul 2026Releases
latest 11-
0.1.829 Jul 2026Release notes
Open source →Fixed
- WebSocket 连接
:0端口 bug:修复ws_connect_io.dart中Uri.replace对ws://scheme 丢失默认端口导致连接地址变成http://host:0/...的问题,改用手动拼接 query string 保持原始 URL 不变。
- WebSocket 连接
-
0.1.729 Jul 2026Release notes
Open source →Added
debugMode参数:AndrewIMClient(debugMode: true)开启后,所有 HTTP 请求都会通过debugPrint打印方法/URL/请求体/响应体(最多 600 字符),方便排查 API 问题。
-
0.1.629 Jul 2026Release notes
Open source →Changed
- 断线重连:默认
maxReconnectAttempts = 0(无限重试),指数退避上限reconnectMaxDelay(默认 30s)。断网数分钟后再恢复也会继续连上,不再在约 8 次后永久放弃。 - 发送超时:
sendMessageHTTP 请求默认 20s timeout。 - 导出
ChatApiException。
Compatibility
- 若需旧行为,构造时传入
maxReconnectAttempts: 8即可。
- 断线重连:默认
-
0.1.529 Jul 2026Release notes
Open source →Added
- 本地消息存储:
LocalMessageStore抽象 +MemoryLocalMessageStore/FileLocalMessageStoreinit后自动打开用户维度文件库(Web 回退内存),恢复 seq 水位- 收发 / WS 推送 / seq 同步自动
upsert落盘 - 新增
AndrewIMClient.getConversationMessages:先读本地再增量补洞,离线可秒开
Compatibility
- 默认行为对宿主透明;可通过构造注入自定义
LocalMessageStore - 公开导出
SeqRange/SessionMessageBatch便于宿主直接 pull-by-seq
- 本地消息存储:
-
0.1.428 Jul 2026Release notes
Open source →Changed
- 好友请求状态 enum 化:
IMFriendApplication.status从String改为FriendRequestStatusFriendApi.getFriendRequests()/FriendshipManager.getFriendApplicationListAsRecipient()改为使用 enum 传递状态筛选- 与
andrew-chat最新 protobuf 契约对齐,避免好友请求状态在服务端 / SDK / App 之间出现字符串漂移
Compatibility
FriendRequestStatus.fromJson()兼容 protobuf JSON 的两种返回形态:- 数字枚举值(
1 / 2 / 3) - 枚举名字符串(如
FRIEND_REQUEST_STATUS_PENDING)
- 数字枚举值(
- 好友请求状态 enum 化:
-
0.1.328 Jul 2026Release notes
Open source →Fixed
- Platform header 修复:
init未传 platform 时,X-Platformheader 与 WS query 出现null(http client 构造时误用原始参数而非自动检测结果)
- Platform header 修复:
-
0.1.228 Jul 2026Release notes
Open source →Added
- 跨群群邀请列表:
groupManager.getReceivedGroupInvites()(被邀请人视角,跨群)- 新增模型
IMGroupInviteListResult - 对应 chat-api
GET /v1/im/groups/invites/received
- 新增模型
Changed
- 搜索结果模型归位:
IMUserSearchResult、IMMessageSearchResult、IMGroupSearchResult、IMMediaSearchResult、IMGlobalSearchListResult、IMSearchHistoryListResult、IMSemanticSearchResult、IMSemanticSearchListResult统一迁移至model/search.dart(此前误置于 api 层),主导出文件正常导出
- 跨群群邀请列表:
-
0.1.127 Jul 2026Release notes
Open source →Fixed
- Platform 自动检测: 初始化时 platform 参数不再写死
flutter,改为dart:io Platform+kIsWeb自动检测(android/ios/macos/windows/linux/web),与 andrew-chat 的 platform 类型对齐
- Platform 自动检测: 初始化时 platform 参数不再写死
-
0.1.027 Jul 2026Release notes
Open source →Added
WebRTC 音视频通话(重大功能)
-
CallMediaEngine: 完整的 WHIP/WHEP 媒体引擎
- WHIP 推流(发布本地音视频流)
- WHEP 拉流(订阅远端音视频流)
- Bearer Token 鉴权(符合 IETF WHIP RFC 9725)
- 自动重连机制(最多 3 次)
- 静音/开关摄像头/切换摄像头
- 本地/远端视频渲染器(RTCVideoRenderer)
-
CallManager 增强: 一键完成信令+媒体
startCall()- 发起通话(自动完成信令+媒体+鉴权)answerCall()- 接听通话(自动完成信令+媒体+鉴权)hangup()- 挂断通话(自动停止媒体+信令)rejectCall()- 拒绝通话cancelCall()- 取消通话startGroupCall()- 发起群通话joinGroupCall()- 加入群通话setMuted()/setCameraEnabled()/switchCamera()- 媒体控制hasMediaEngine- 检查媒体引擎状态
-
按需初始化机制
- 仅在服务端返回媒体配置时才启动引擎
- 节省资源,支持纯信令场景
- 自动检测
session.media字段
-
自动心跳保活
- 每 10 秒自动发送心跳
- 检测
shouldReconnectMedia自动重连媒体 - 检测
callEnded自动挂断
-
Bearer Token 鉴权
- WHIP/WHEP 请求自动携带 JWT token
- 符合 IETF RFC 6750 标准
- 无需手动配置
Changed
- CallManager 重构: 从纯信令管理器升级为完整的通话管理器
- 依赖更新:
- 添加
flutter_webrtc: ^0.14.0 - 添加
dio: ^5.4.0 - 添加
flutterSDK 依赖
- 添加
Removed
-
删除 Deprecated API:
initiateCall()→ 使用startCall()替代acceptCall()→ 使用answerCall()替代createGroupCall()→ 使用startGroupCall()替代joinCall()→ 使用joinGroupCall()替代endCall()→ 使用hangup()替代
-
删除 client.dart 中的重复方法:
callHeartbeat()→ 使用callManager!.heartbeat()替代getCallSession()→ 使用callManager!.getCallSession()替代createGroupCall()→ 使用callManager!.startGroupCall()替代joinCall()→ 使用callManager!.joinGroupCall()替代
Documentation
- 新增
doc/音视频通话指南.md- 完整的通话功能使用文档 - 更新
README.md- 添加音视频通话特性说明
-
-
0.0.223 Jul 2026Release notes
Open source →Added
- 消息、会话、群组、好友等 IM 核心功能
- WebSocket 长连接管理
- 消息同步、未读数管理
- 搜索、通知、Bot、Webhook 等扩展功能
- 消息翻译、草稿云同步
- 通话信令 API(CallManager 基础版)
-
0.0.123 Jul 2026Nothing published for this version