Agora 云信令(原实时消息)SDK 提供了稳定可靠、低延时、高并发的全球消息云服务,帮助你快速构建实时通信场景, 可实现消息通道、呼叫、聊天、状态同步等功能。点击云信令(原实时消息)产品概述了解详情。
该版本于 2021 年 5 月 27 日发布。
域名白名单变更
自 1.4.3 版本起,SDK 的域名白名单变更为:
.edge.agora.io
.edge.sd-rtn.com
web-1.ap.sd-rtn.com
web-2.ap.sd-rtn.com
ap-web-1.agora.io
ap-web-2.agora.io
webcollector-rtm.agora.io
logservice-rtm.agora.io
rtm.statscollector.sd-rtn.com
rtm.logservice.sd-rtn.com
为确保你在有网络访问限制的环境中能够使用 Agora 产品,如果你将 SDK 升级至 1.4.3 版本,请务必更新防火墙的域名白名单。
设置区域访问限制
新增 AgoraRTM.setArea
方法用于指定 Agora RTM SDK 的访问区域。该功能为高级设置,适用于有访问安全限制的场景。
指定访问区域之后,SDK 只会连接到指定区域内的 Agora 服务器。支持的区域如下:
支持通过 AgoraRTM.setArea
方法中的 excludeArea
参数,去除访问区域中的个别区域。该设置仅对于 GLOBAL
的访问区域有效。详见限定访问区域。
废弃 createInstance
并新增同名方法替代。新方法去除 areaCodes
参数设置,即不再通过 createInstance
方法设置 Agora RTM SDK 的访问区域。
新增
废弃
createInstance
,使用新的 createInstance
。
该版本于 2021 年 3 月 2 日发布。
行为变更
setParameters
方法的作用,该版本新增了功能完全相同的 updateConfig
方法,并废弃了原有的 setParameters
方法。content
的参数大小超过 8 KB 时,INVITATION_API_CALL_ERR_INVALID_ARGUMENT
错误码的触发条件从调用 setContent
时触发改为调用 send
时触发。兼容性变更
sha1
变量中<script src="https://cdn.jsdelivr.net/npm/js-sha1@0.6.0/src/sha1.min.js"></script>
window.sha1 = require('js-sha1')
ReceivedMessageProperties
对象的 isHistoricalMessage
成员变量。LocalInvitation
RemoteInvitation
RtmMessage
RtmRawMessage
RtmTextMessage
RtmFileMessage
RtmImageMessage
downloadMedia
下载的二进制 Blob 对象添加相应 MIME 类型,支持自动检测并添加以下 MIME 类型:新增
废弃
setParameters
ReceivedMessageProperties
对象的 isHistoricalMessage
成员变量
该版本于 2020 年 11 月 5 日发布。
新增功能
修复了与 RTM Native SDK 互通时的性能问题。
该版本于 2020 年 9 月 25 日发布。
升级必看
1.4.0 版仅支持 TypeScript 3.8 或以上版本。
新增功能
增加限定访问区域功能。你可以通过 createInstance
方法中的 areaCodes
参数设置 Agora RTM SDK 的访问区域。设置之后,RTM SDK 只能连接位于限定区域的 Agora RTM 服务器。详见限定访问区域。
API 变更
createInstance
方法新增 areaCodes
参数。
该版本于 2020 年 8 月 12 日发布。
问题修复
TokenExpired
回调无法及时触发的问题。该版本于 2020 年 6 月 24 日发布。
升级必看
新增特性
你可以通过 createMediaMessageByUploading
方法上传不超过 30 MB 的非空文件或图片。每个上传成功的文件或图片会在 Agora 服务器保存七天,SDK 会返回一个 media ID 作为此文件或图片的唯一标识。你可以使用 RtmFileMessage
接口或 RtmImageMessage
接口保存 SDK 返回的 media ID。RtmFileMessage
接口和 RtmImageMessage
接口都是 RtmMessage
接口的类型别名,所以你可以通过点对点消息或频道消息发送和接收文件消息或图片消息。你可以使用 downloadMedia
方法下载接收到的文件或图片。
你可以通过 mediaTransferHandler
接口取消上传或下载任务,或者报告上传或下载的进度。
问题修复
解决了部分地区用户无法登录的问题。
API 变更
createMediaMessageByUploading
方法downloadMedia
方法createMessage
方法RtmImageMessage
接口RtmFileMessage
接口mediaTransferHandler
接口mediaOperationProgress
接口该版本于 2020 年 2 月 21 日发布。
兼容性改变
发送频道消息的超时时间由 5 秒变更为 10 秒。
问题修复
从 Windows 平台上较新版本 Chrome 登录 Agora RTM 系统会偶尔收到错误码 LOGIN_ERR_UNKNOWN
。
该版本于 2019 年 12 月 17 日 发布。
新增功能
支持与老信令 SDK 的 endCall 方法兼容
你可以调用 sendMessageToPeer
方法在发送文本消息时将消息设为 AgoraRTMLegacyEndcallCompatibleMessagePrefix_<channelId>_<your additional information> 格式即可。请以 endCall 对应频道的 ID 替换 <channelId>, <your additional information> 为附加文本信息。请注意:附加文本信息中不可使用下划线 "_" ,附加文本信息可以设为空字符串 "" 。
问题修复
MemberJoined
回调的问题。该版本于 2019 年 11 月 15 日发布。新增如下功能:
新增功能
本版本支持订阅或取消订阅最多 512 个用户的在线状态。首次订阅成功时,SDK 会通过 PeersOnlineStatusChanged
回调返回所有被订阅用户的在线状态;之后每当有被订阅用户的在线状态出现变化,SDK 都会通过 PeersOnlineStatusChanged
回调通知订阅方。
本版本支持根据被订阅类型获取被订阅用户列表。现实情况中,你可能多次订阅或取消订阅,可能重复订阅了相同用户,可能出现订阅或取消订阅不成功的情况,也可能根据不同的订阅类型订阅了不同的用户。这时,你可以通过本功能根据订阅类型获取当前被订阅用户列表。
被订阅类型由枚举类型 PeerSubscriptionOption
定义。本版本仅支持用户在线状态订阅一种类型,后继会不断扩展。
本版本支持创建自定义二进制消息,支持以点对点消息或频道消息形式发送多种文件格式。
问题修复
SDK 偶尔会被服务端踢开:问题发生时,Client 实例会收到 ConnectionStateChange 回调,状态改变为 ABORTED,改变原因为 INTERRUPTED;日志显示服务端错误码为 10001。
该版本于 2019 年 9 月 30 日发布。新增如下功能:
兼容性改动
RtmMessage
对象的 serverReceivedTs
方法由仅支持点对点消息改为同时支持点对点消息和频道消息。新增功能
支持在不加入频道的情况下通过主动调用 getChannelMemberCount
接口查询单个或多个频道的频道人数。一次最多可查询 32 个频道的成员人数。
如果你已经加入某频道,你无需调用 getChannelMemberCount
接口查询当前频道人数。我们也不建议你通过监听 MemberJoined
和 MemberLeft
统计频道成员人数。从本版本开始,SDK 会在频道成员人数发生变化时通过 MemberCountUpdated
回调接口通知频道成员并返回当前频道成员人数:
支持设置或查询某个指定频道的属性。你可以用频道属性实现群公告、上下麦同步等功能。
每个频道属性为 key 和 value 的键值对。其中:
支持功能包括:
在进行频道属性的更新或删除操作时,你可以通过设置标志位 enableNotificationToChannelMembers
决定是否通知对应频道所有成员本次频道属性变更。
性能改进
本版本优化了点对点消息在弱网情况下的重发机制,并延长点对点消息超时时间为 10 秒,提高了在弱网情况下点对点消息的发送成功率。
Agora RTM 系统会对短期掉线后重连成功的频道成员补发最长 30 秒最多 32 条的频道消息,提高了弱网情况下频道消息的到达率。
API 变更
该版本于 2019 年 9 月 5 日发布。
问题修复
功能改进
该版本于 2019 年 8 月 5 日发布。
新增功能
支持与 Agora Signaling SDK 互通。
本版本在 LocalInvitation
类中实现了 channelId
属性。
- 如需与 Agora Signaling SDK 互通,则必须调用
channelId
属性设置频道 ID。不过即使被叫成功接受呼叫邀请,Agora RTM SDK 也不会将主叫或被叫加入指定频道。- 如果你的应用不涉及 Agora Signaling SDK,我们推荐使用
LocalInvitation.content
或者RemoteInvitation.response
属性设置自定义内容。
支持通过设置 logFilter
参数将日志内容按照 OFF、ERROR、WARNING 和 INFO 不同等级输出 。
API 变更
新增
该版本于 2019 年 7 月 24 日发布。
新增功能
本版本支持发送离线消息。在开通离线消息后,用户不必等到接收端上线才能发送点对点消息。如果对端离线,消息服务器会为每个接收端存储 200 条离线消息长达七天。消息以队列形式存储。当离线消息超限时,最新存储的消息会导致最老的消息丢失。
该方法的调用频率限制为每秒 60 条(点对点消息和频道消息一并计算在内)。
本版本支持设置和查询用户属性。每个用户属性为 key 和 value 的键值对。每个属性的 key 为 32 字节可见字符,每个属性的 value 的字符串长度不得超过 8 KB。单个用户的全部属性长度不得超过 16 KB。以下为本版本支持内容:
- 设置的用户属性会在用户登出 Agora RTM 系统后自动失效。
本版本引入了新的概念:在线和离线。一般情况下:
本版本增加了查询用户在线状态功能。你可以在登录 Agora RTM 系统后查询最多 256 个指定用户的在线状态。
本版本提供了更新 Token 的功能
API 变更
该版本于 2019 年 5 月 20 日发布。
新增功能
本版本增加了呼叫邀请功能。结合音视频一对一或一对多通话场景,你可以创建、发送、取消、接受或拒绝一个呼叫邀请。
性能改进
uid
允许以空格开头。API 变更
新增
RtmClient
的事件 ConnectionStateChange
更名为 ConnectionStateChanged 。RtmChannel
getId
方法,改用 channelId 代替。该版本于 2019 年 2 月 4 日发布。
首次发布。
主要功能