跳到主要内容

版本:5.X

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 及更早版本,需注意如下变更:

注意

  1. SDK 不再支持公众号客服插件相关接口!
  2. IM 链接因网络问题意外中断后,SDK 会自动重连,应用层无需再调用 reconnect 方法。
  3. 'RC:ProfileNtf''RC:CmdNtf''RC:InfoNtf' 类型消息的 content.data 字段为 Json 字符串,需自行解析。
  4. SDK 不再兼容 IE 浏览器 6 至 8 版本。

具体废弃功能参见下表:

分类废弃方法描述
会话getConversationUnreadCount按会话类型获取会话未读数
会话clearConversations按会话类型删除会话
会话clearTotalUnreadCount清除所有会话未读数
讨论组createDiscussion创建讨论组
讨论组getDiscussion获取讨论组信息
讨论组quitDiscussion退出讨论组
讨论组addMemberToDiscussion加入讨论组
讨论组removeMemberFromDiscussion将指定成员移除讨论租
讨论组setDiscussionInviteStatus设置讨论组邀请状态
讨论组setDiscussionName设置讨论组名称

新旧 API 对照速查表

描述2.x API5.x API
初始化initinit
设置监听setConnectionStatusListeneraddEventListener
重连reconnect无需应用侧调用重连,详见SDK 重连机制
断开连接disconnectdisconnect
退出登录logoutdisconnect
获取会话列表getConversationListgetConversationList
清除会话列表clearConversations5.X 版本客户端不提供该接口。
获取指定会话getConversationgetConversation
删除指定会话removeConversationremoveConversation
获取草稿getTextMessageDraftgetTextMessageDraft
保存草稿saveTextMessageDraftsaveTextMessageDraft
删除草稿clearTextMessageDraftclearTextMessageDraft
获取所有会话未读数getTotalUnreadCountgetTotalUnreadCount
获取单个会话未读数getUnreadCountgetUnreadCount
按会话类型获取未读数getConversationUnreadCountgetTotalUnreadCount
清除单个会话未读数clearUnreadCountclearMessagesUnreadStatus
清除全部会话未读数clearAllUnreadCountclearAllMessagesUnreadStatus
会话置顶setConversationStatussetConversationToTop
会话免打扰setConversationStatussetConversationNotificationLevel
创建标签createTagaddTag
移除标签removeTagremoveTag
编辑标签updateTagupdateTag
获取标签列表getTagListgetTags
添加会话到一个标签addTagForConversationsaddConversationsToTag
删除指定标签中某些会话removeTagForConversationsremoveTagsFromConversations
删除指定会话中的某些标签removeTagsForConversationremoveTagsFromConversation
获取指定会话下的所有标签getTagsForConversationgetTagsFromConversation
分页获取指定标签下的会话列表getConversationListByTaggetConversationsFromTagByPage
按标签获取未读消息数getUnreadCountByTaggetUnreadCountByTag
设置标签中会话置顶setConversationStatusInTagsetConversationToTopInTag
发送消息sendMessagesendMessage
注册自定义消息registerMessageTyperegisterMessageType
历史消息获取getHistoryMessagesgetHistoryMessages
单聊消息回执实现方案需要整体替换成 5x SDK 的接口sendReadReceiptMessage
群聊消息回执实现方案需要整体替换成 5x SDK 的接口sendReadReceiptRequestsendReadReceiptResponseV2
消息撤回sendRecallMessagerecallMessage
消息删除deleteRemoteMessagesdeleteMessages
更新消息扩展updateMessageExpansionupdateMessageExpansion
删除消息扩展removeMessageExpansionForKeyremoveMessageExpansionForKey
加入聊天室joinChatRoomjoinChatRoom
退出聊天室quitChatRoomquitChatRoom
查询聊天室信息getChatRoomInfogetChatRoomInfo
聊天室设置属性setChatroomEntrysetChatRoomEntry
聊天室批量设置属性setChatRoomEntriessetChatRoomEntries
聊天室强制设置属性forceSetChatroomEntryforceSetChatRoomEntry
聊天室删除属性removeChatroomEntryremoveChatRoomEntry
聊天室强制删除属性forceRemoveChatroomEntryforceRemoveChatRoomEntry
聊天室获取单个属性getChatroomEntrygetChatRoomEntry
聊天室获取所有属性getAllChatroomEntriesgetAllChatRoomEntries
获取聊天室历史消息getChatRoomHistoryMessagesgetChatroomHistoryMessages