2.X 升级到 5.X(Electron)
本文描述如何从 IMLib SDK 2.X 版本(@rongcloud/imlib-v2
) 升级至 5.X 版本的步骤。
Electron 平台升级概述
IMLib SDK 5.X 是即时通讯业务客户端 SDK 的最新版本, 对 Typescript 的使用者提供了友好的类型化支持。相对于 2.X 版本,5.X 版本功能更丰富,更稳定,并在之前版本上修复了大量问题,我们建议融云客户尽早升级至新版 IMLib SDK。
注意
融云同时为已集成 IMLib v2 版本(
@rongcloud/imlib-v2
)的客户提供了基于 Adapter 库(RongIMLib-v2-Adapter
)替换升级选项。请注意,Adapter 库仅会提供问题修复,但不会在旧版 SDK 基础上增加新功能。详见关于 Adapter 的说明。
评估升级工作量
IMLib 5x SDK 与旧版 SDK 不兼容。我们整理了新旧版本 SDK API 对应关系与差异。请开发者根据自身 API 使用情况与 API 差异,合理安排开发周期。
- 新旧版本接口接口的名称和参数差异较大。升级前需要详细对照。
- 新旧版本接口返回值差异较大,可根据接口名称速查对照表比对各个接口返回值差异。
升级注意事项
在 Electron 框架中使用 IMLib 5.X SDK,需要在主进程中引用 @rongcloud/electron
包,并在 app 的 ready 事件通知后进行主进程初始化。在渲染进程中初始化 IMLib,详细请阅读 适配 Electron 框架 相关文档完成升级。
Electron 包变化
需要删除 electron-solution
包,重新引入 @rongcloud/electron 与 @rongcloud/electron-renderer
Electron 独有接口
升级到 5.X 后,如果调用 Electron 独有接口,需要增加 electronExtension 属性标识。调用方式示例如下:
RongIMLib.electronExtension.getAllConversationList();
下表列出了 IMLib 5.X 提供的 Electron 独有接口。
描述 | 5.x API |
---|---|
获取本地全部会话 | getAllConversationList |
分页获取本地会话 | getConversationList |
搜索本地会话 | searchConversationByContent |
根据关键字搜索本地消息 | searchMessages |
指定时间范围内搜索本地消息 | searchMessageInTimeRange |
获取指定消息类型的历史消息 | getHistoryMessagesByMessageTypes |
通过时间戳设置消息状态为对方已读 | setMessageStatusToRead |
设置消息的接收状态 | setMessageReceivedStatus |
设置消息的发送状态 | setMessageSentStatus |
通过消息 ID 删除 | deleteMessages |
通过会话删除 | clearMessages |
通过时间戳删除 | deleteMessagesByTimestamp |
插入单条消息 | insertMessage |
批量插入消息 | batchInsertMessage |
从 v2.5 或更早版本升级
IMLib 2.5 及更早版本,需注意如下变更:
注意
- SDK 不再支持公众号与客服插件相关接口!
- IM 链接因网络问题意外中断后,SDK 会自动重连,应用层无需再调用
reconnect
方法。- 若
'RC:ProfileNtf'
、'RC:CmdNtf'
、'RC:InfoNtf'
类型消息的content.data
字段为 Json 字符串,需自行解析。- SDK 不再兼容 IE 浏览器 6 至 8 版本。
具体废弃功能参见下表:
分类 | 废弃方法 | 描述 |
---|---|---|
会话 | getConversationUnreadCount | 按会话类型获取会话未读数 |
会话 | clearConversations | 按会话类型删除会话 |
会话 | clearTotalUnreadCount | 清除所有会话未读数 |
讨论组 | createDiscussion | 创建讨论组 |
讨论组 | getDiscussion | 获取讨论组信息 |
讨论组 | quitDiscussion | 退出讨论组 |
讨论组 | addMemberToDiscussion | 加入讨论组 |
讨论组 | removeMemberFromDiscussion | 将指定成员移除讨论租 |
讨论组 | setDiscussionInviteStatus | 设置讨论组邀请状态 |
讨论组 | setDiscussionName | 设置讨论组名称 |