该版本于 2022 年 9 月 1 日发布,提升了 SDK 的稳定性。
该版本于 2022 年 7 月 27 日发布。
富媒体传输、历史消息 和 离线消息 功能于该版本正式下线。旧版本 SDK 会继续支持,已集成这些功能的用户不受影响。
废弃
createFileMessageByMediaIdcreateFileMessageByUploadingcreateImageMessageByMediaIdcreateImageMessageByUploadingcancelMediaUploadcancelMediaDownloaddownloadMediadownloadMediaToMemoryfileMessageReceivedimageMessageReceiveduploadingProgressdownloadingProgressenableOfflineMessagingenableHistoricalMessagingSDK 自 1.4.6 版本起对 iOS 15 进行了兼容性适配。对于 1.4.4 及 1.4.5 版本,在 iOS 15 上高概率会发生崩溃。为避免该问题,请务必将 SDK 升级至 1.4.6 或之后版本。
该版本于 2022 年 03 月 01 日发布。
自该版本起,支持在 M1 芯片的设备上运行 iOS 模拟器。
修复了一些富媒体相关的崩溃问题。
该版本于 2021 年 11 月 19 日发布。
提升了 IPv4/IPv6 双栈网络下登录成功率和连接稳定性。
该版本修复了如下问题:
该版本于 2021 年 7 月 23 日发布。
更新 Info.plist 文件内的 SDK 版本信息到最新版本。
该版本于 2021 年 7 月 19 日发布。
该版本于 2021 年 6 月 21 日发布,对 iOS 15 进行了兼容性适配。
该版本于 2021 年 4 月 30 日发布。
集成变更
由于从 1.4.4 版本起, SDK 由静态库升级为动态库,且动态库使用 XCFramework 格式,如果你使用的第三方工具不支持 XCFramework 格式,声网提供如下脚本来解决该集成问题:
详见集成 SDK。
修复了一些可能导致崩溃的问题,优化了稳定性。
修复了使用 1.4.4 版本 SDK 集成的 iOS app,在 App Store 由于审核问题无法上架的问题。
该版本于 2021 年 4 月 20 日发布。
AgoraRtmKit.xcframework 即可,无需添加其他依赖库。详见升级指南。优化了弱网对抗能力,提高了弱网环境下的登录成功率和消息投递成功率。
该版本于 2021 年 2 月 10 日发布。
问题修复
该版本修复了以下问题:
AgoraAreaCode 常量与声网 RTM SDK 的 AgoraRtmAreaCode 常量值命名冲突问题。自 v1.4.3 起,声网在 SDK 包中提供了 AgoraRtmKit_swift.h 文件,对 AgoraRtmAreaCode 常量值做了修改。使用 Swift 进行开发时,你可以通过引用此文件避免命名冲突。该版本于 2020 年 11 月 23 日发布。
AgoraRtmAreaCode 枚举类型定义了 AGORA_SDK_BOTH_RTM_AND_RTC 宏,可以用来解决 RTC 与 RTM 共同使用时命名冲突的问题。修复了一些崩溃问题。
该版本于 2020 年 9 月 30 日发布。
优化了日志文件。
解决了 iOS 14 下触发弹窗的问题。详见为什么在运行集成声网 RTM SDK 的 iOS app 时会看到查找本地网络设备的弹窗提示?。
该版本于 2020 年 9 月 1 日发布。
setLogFileSize 日志文件的大小默认值从 512 KB 增加到 10 MB。上限从 10 MB 增加到 1 GB。AgoraRtmKit 实例之前,你需要调用 destroyChannelWithId 销毁所有现存的 AgoraRtmChannel 实例,否则可能会造成崩溃。setRtmServiceContext 方法设置声网 RTM SDK 的访问区域。设置之后,RTM SDK 只能连接位于限定区域的声网 RTM 服务器。API 变更
该版本于 2020 年 5 月 11 日发布。
1. 发送和接收文件消息
v1.3.0 支持上传和下载大小不超过 30 MB 的任意格式的非空文件,支持随时取消正在进行中的上传或下载任务。每个上传到声网服务器的文件都对应一个 media ID,在服务端保存 7 天。你可以通过 media ID 在 7 天有效期内从声网服务器下载对应的文件。
v1.3.0 引入了 AgoraRtmFileMessage 消息接口用于保存和传递系统生成的 media ID。AgoraRtmFileMessage 接口继承自 AgoraRtmMessage 接口,所以你可以通过点对点消息或频道消息发送方法传递 AgoraRtmFileMessage 实例。你可以通过 AgoraRtmFileMessage 对象进行以下操作:
2. 发送和接收图片消息
v1.3.0 支持上传和下载大小不超过 30 MB 的任意格式的非空图片,支持随时取消正在进行中的上传或下载任务。每个上传到声网服务器的图片都对应一个 media ID,在服务端保存 7 天。你可以通过 media ID 在 7 天有效期内从声网服务器下载对应的图片。
v1.3.0 引入了 AgoraRtmImageMessage 消息接口用于保存和传递系统生成的 media ID。AgoraRtmImageMessage 接口继承自 AgoraRtmMessage 接口,所以你可以通过点对点消息或频道消息发送方法传递 AgoraRtmImageMessage 实例。你可以通过 AgoraRtmImageMessage 对象进行以下操作:
3. 通知上传或下载任务的进度
对于正在进行中的上传或下载任务,SDK 会通过主动回调每秒返回一次上传或下载的进度。当上传或下载任务暂停时, SDK 暂停返回相应回调,直至任务继续进行。
新增方法
createFileMessageByUploading:withRequest:completion:createImageMessageByUploading:withRequest:completion:cancelMediaUpload:completion:cancelMediaDownload:completion:createFileMessageByMediaId:createImageMessageByMediaId:downloadMediaToMemory:withRequest:completion:downloadMedia:toFile:withRequest:completion:新增回调
rtmKit:media:uploadingProgress:rtmKit:media:downloadingProgress:AgoraRtmUploadFileMediaBlockAgoraRtmUploadImageMediaBlockAgoraRtmCancelMediaBlockAgoraRtmDownloadMediaToMemoryBlockAgoraRtmDownloadMediaToFileBlockrtmKit:fileMessageReceived:fromPeer:rtmKit:imageMessageReceived:fromPeer:channel:fileMessageReceived:fromMember:channel:imageMessageReceived:fromMember:废弃方法
sendMessage:completion: 被重载方法 sendMessage:sendMessageOptions:completion: 替代。
该版本于 2019 年 12 月 13 日发布。
问题修复
修复了一个偶现的频道属性操作后无法收到回调的问题。
该版本于 2019 年 11 月 29 日 发布。
新增功能
支持与老信令 SDK 的 endCall 方法兼容
你可以调用 sendMessageToPeer 方法在发送文本消息时将消息设为 AgoraRTMLegacyEndcallCompatibleMessagePrefix_<channelId>_<your additional information> 格式即可。请以 endCall 对应频道的 ID 替换 <channelId>, <your additional information> 为附加文本信息。请注意:附加文本信息中不可使用下划线 "_" ,附加文本信息可以设为空字符串 "" 。
问题修复
MemberJoined 回调的问题。该版本于 2019 年 11 月6 日发布。新增如下功能:
废弃 AgoraRtmPeerOnlineStatus 类的 isOnline 属性。请改用 state 属性。
本版本支持订阅或取消订阅最多 512 个用户的在线状态,SDK 会通过 AgoraRtmSubscriptionRequestBlock 返回订阅或取消订阅结果。首次订阅成功时,SDK 会通过 PeersOnlineStatusChanged 回调返回所有被订阅用户的在线状态;之后每当有被订阅用户的在线状态出现变化,SDK 都会通过 onPeersOnlineStatusChanged 回调通知订阅方。
本版本支持根据被订阅类型获取被订阅用户列表。现实情况中,你可能多次订阅或取消订阅,可能重复订阅了相同用户,可能出现订阅或取消订阅不成功的情况,也可能根据不同的订阅类型订阅了不同的用户。这时,你可以通过本功能根据订阅类型获取当前被订阅用户列表。
被订阅类型由枚举类型 AgoraRtmPeerSubscriptionOptions 定义。本版本仅支持用户在线状态订阅一种类型,后继会不断扩展。
本版本支持创建自定义二进制消息,支持以点对点消息或频道消息形式发送多种文件格式。
本版本支持:
该版本于 2019 年 9 月 18 日发布。新增如下功能:
支持在不加入频道的情况下通过主动调用 getChannelMemberCount 接口查询单个或多个频道的频道人数。一次最多可查询 32 个频道的成员人数。
如果你已经加入某频道,你无需调用 getChannelMemberCount 接口查询当前频道人数。我们也不建议你通过监听 onMemberJoined 和 onMemberLeft 统计频道成员人数。从本版本开始,SDK 会在频道成员人数发生变化时通过 memberCount 回调接口通知频道成员并返回当前频道成员人数:
请将该回调与 AgoraRtmGetMembersBlock 回调进行区分:
- 前者为主动回调。SDK 向频道成员返回当前频道成员人数。
- 后者由 getMembersWithCompletion 方法触发,返回频道成员列表,且当频道成员人数超过 512 时仅返回随机的 512 个成员列表。
支持设置或查询某个指定频道的属性。你可以用频道属性实现群公告、上下麦同步等功能。
每个频道属性为 key 和 value 的键值对。详见:AgoraRtmChannelAttribute。其中:
支持功能包括:
在进行频道属性的更新或删除操作时,你可以通过设置标志位 enableNotificationToChannelMembers 决定是否通知对应频道所有成员本次频道属性变更。
点对点消息重发
本版本优化了点对点消息在弱网情况下的重发机制,并延长点对点消息超时时间为 10 秒,提高了在弱网情况下点对点消息的发送成功率。
频道消息缓存
声网 RTM 系统会对短期掉线后重连成功的频道成员补发最长 30 秒最多 32 条的频道消息,提高了弱网情况下频道消息的到达率。
新增方法
新增回调
新增错误码
废弃方法
废弃错误码
该版本于 2019 年 8 月 1 日发布。
connectionStateChanged 回调。该版本于 2019 年 7 月 24 日发布。
新老互通
支持与声网 Signaling SDK 互通。
本版本在 AgoraRtmLocalInvitation 类中实现了 channelId 属性。
- 如需与声网 Signaling SDK 互通,则必须设置
channelId。不过即使被叫成功接受呼叫邀请,声网 RTM SDK 也不会将主叫或被叫加入指定频道。- 如果你的应用不涉及声网 Signaling SDK,我们推荐使用
AgoraRtmLocalInvitation类中的content属性或者AgoraRtmRemoteInvitation类中的response属性设置自定义内容。
设置日志文件地址
支持通过调用 setLogFile 方法变更本地日志的默认地址。该方法无需在 loginByToken 成功之后调用,我们建议在创建并初始化 AgoraRtmkit 实例后即调用该方法,否则会造成日志文件显示不完整。
设置日志输出等级
支持通过调用 setLogFilter 方法将日志内容按照 OFF、CRITICAL、ERROR、WARNING 和 INFO 不同等级输出。详见 AgoraRtmLogFilter 。
该方法无需在
loginByToken成功之后调用。
设置日志文件大小
支持通过 setLogFileSize 方法设置日志文件大小。日志的默认大小为 512 KB。低于该默认大小的设置无效。
该方法无需在
loginByToken成功之后调用。
查询 SDK 版本信息
支持通过调用静态方法 getSDKVersion 查询声网 RTM SDK 的版本信息。
针对以下不同错误情况细化了错误代码
loginByToken 方法或 loginByToken 方法未调用成功该版本于 2019 年 6 月 7 日发布。
发送(离线)点对点消息
本版本支持发送离线消息。在开通离线消息后,用户不必等到接收端上线才能发送点对点消息。如果对端离线,消息服务器会为每个接收端存储 200 条离线消息长达七天。消息以队列形式存储。当离线消息超限时,最新存储的消息会导致最老的消息丢失。当发送端设置了离线消息,而此时消息接收端不在线,发送端会收到错误码:AgoraRtmSendPeerMessageErrorCachedByServer
该方法的调用频率限制为每秒 60 条(点对点消息和频道消息一并计算在内)。
设置本地用户属性、查询指定用户属性
本版本支持设置和查询用户属性。每个用户属性为 key 和 value 的键值对。每个属性的 key 为 32 字节可见字符,每个属性的 value 的字符串长度不得超过 8 KB。单个用户的全部属性长度不得超过 16 KB。以下为本版本支持内容:
- 用户属性的相关操作必须在登录声网 RTM 系统成功后才能进行,否则 SDK 会返回错误码:
AgoraRtmAttributeOperationErrorNotReady- 设置的用户属性会在用户登出声网 RTM 系统后自动失效。
- 单次用户属性设置操作不得超过 16 KB,否则 SDK 会返回错误码:
AgoraRtmAttributeOperationErrorSizeOverflow。- 用户属性设置相关操作的调用频率限制为每 5 秒 10 条,超限则 SDK 会返回错误码:
AgoraRtmAttributeOperationErrorTooOften。- 获取用户属性相关操作的调用频率为每 5 秒 40 条,超限则 SDK 会返回错误码:
AgoraRtmAttributeOperationErrorTooOften。
新增
AgoraRtmJoinChannelErrorFailure 。该版本于 2019 年 5 月 8 日发布。
查询用户在线状态
本版本引入了新的概念:在线和离线。一般情况下:
本版本增加了查询用户在线状态功能。你可以在登录声网 RTM 系统后查询最多 256 个指定用户的在线状态。详见: queryPeersOnlineStatus:completion: 接口。
- 返回的阵列中的 Use ID 的顺序以输入顺序为准。
- 该方法的调用频率限制为每 5 秒 10 次。详见 限制条件 。
更新 Token
在安全性要求较高的情况下,你需要输入 Token 登录声网 RTM 系统。 每个 Token 都会在生成 24 小时后过期,本版本提供了 更新 Token 的功能。
- renewToken 方法必须在 创建 RtmClient 实例 后才能调用。
- 声网 RTM Token 的生成方式、输入参数与声网媒体 SDK 不同,详情请见: 校验用户权限 。
renewToken:completion:方法的调用频率为 2 次 / 秒。详见 限制条件 。
查询用户在线状态相关
新增
更新 Token 相关
新增
呼叫邀请相关
新增以下错误码覆盖用户在没有登录声网 RTM 系统的情况下发送呼叫邀请的错误情况:
该版本于 2019 年 4 月 4 日发布。
本版本不包含
setLogFile和setLogFilter方法。所有的日志信息默认保存在:
- iOS 平台: /Library/Caches/agorartm.log 。
- macOS 平台: ~/Library/Logs/agorartm.log 。
本版本增加了呼叫邀请功能。结合音视频一对一或一对多通话场景,你可以创建、发送、取消、接受或拒绝一个呼叫邀请。
新增
initWithCalleeId: 创建一个 AgoraRtmLocalInvitation 实例。
AgoraRtmLocalInvitation: 用于主叫读取的呼叫邀请对象。
localInvitationReceivedByPeer: 被叫已接收到呼叫邀请回调。
localInvitationAccepted: 被叫已接受呼叫邀请回调。
localInvitationRefused: 被叫已拒绝呼叫邀请回调。
localInvitationCanceled: 已取消呼叫邀请回调。
localInvitationFailure: 发出的呼叫邀请进程失败回调。
remoteInvitationReceived: 收到呼叫邀请回调。
remoteInvitationAccepted: 已接受呼叫邀请回调。
remoteInvitationRefused: 已拒绝呼叫邀请回调。
remoteInvitationCanceled: 主叫已取消呼叫邀请回调。
remoteInvitationFailure: 发给被叫的呼叫邀请进程失败回调。
AgoraRtmCallDelegate: 提供呼叫邀请相关回调。
sendLocalInvitation: 向指定用户发送呼叫邀请。
acceptRemoteInvitation: 用于被叫接受呼叫邀请。
refuseRemoteInvitation: 用于被叫拒绝呼叫邀请。
cancelLocalInvitation: 用于主叫取消呼叫邀请。
AgoraRtmLocalInvitationState: 返回给主叫的呼叫邀请状态码。
AgoraRtmRemoteInvitationState: 返回给被叫的呼叫邀请状态码。
AgoraRtmLocalInvitationErrorCode: 返回给主叫的呼叫邀请错误码。
AgoraRtmRemoteInvitationErrorCode: 返回给主叫的呼叫邀请错误码。
AgoraRtmInvitationApiCallErrorCode: 呼叫邀请相关 API 方法调用的错误码。
AgoraRtmConnectionChangeReasonRemoteLogin: 另一个实例已用相同的用户 ID 登录声网 RTM 系统。
AgoraRtmSendPeerMessageErrorCode: 发送点对点消息相关错误码。
AgoraRtmSendChannelMessageErrorCode: 发送频道消息相关错误码。
删除
AgoraRtmSendMessageErrorCode ,改用 AgoraRtmSendPeerMessageErrorCode 和 AgoraRtmSendChannelMessageErrorCode 。修正
channelDelegate 设为 property 方便开发者设置。 rtmKit 从 AgoraRtmChannelDelegate 下的回调中删除。AgoraRtmSendChannelMessageStateReceivedByServer 状态。该版本于 2019 年 2 月 4 日发布。
首次发布。
关键功能