#include <IAgoraRtmService.h>
Public 成员函数 | |
virtual int | initialize (const char *appId, IRtmServiceEventHandler *eventHandler)=0 |
virtual void | addEventHandler (IRtmServiceEventHandler *eventHandler)=0 |
virtual void | removeEventHandler (IRtmServiceEventHandler *eventHandler)=0 |
virtual void | release (bool sync=false)=0 |
virtual int | login (const char *token, const char *userId)=0 |
virtual int | logout ()=0 |
virtual int | renewToken (const char *token)=0 |
virtual int | sendMessageToPeer (const char *peerId, const IMessage *message)=0 |
virtual int | downloadMediaToMemory (const char *mediaId, long long &requestId)=0 |
virtual int | downloadMediaToFile (const char *mediaId, const char *filePath, long long &requestId)=0 |
virtual int | cancelMediaDownload (long long requestId)=0 |
virtual int | cancelMediaUpload (long long requestId)=0 |
virtual int | sendMessageToPeer (const char *peerId, const IMessage *message, const SendMessageOptions &options)=0 |
virtual IChannel * | createChannel (const char *channelId, IChannelEventHandler *eventHandler)=0 |
virtual IRtmCallManager * | getRtmCallManager (IRtmCallEventHandler *eventHandler)=0 |
virtual IMessage * | createMessage ()=0 |
virtual IMessage * | createMessage (const char *message)=0 |
virtual IMessage * | createMessage (const uint8_t *rawData, int length)=0 |
virtual IMessage * | createMessage (const uint8_t *rawData, int length, const char *description)=0 |
virtual IFileMessage * | createFileMessageByMediaId (const char *mediaId)=0 |
virtual IImageMessage * | createImageMessageByMediaId (const char *mediaId)=0 |
virtual int | createFileMessageByUploading (const char *filePath, long long &requestId)=0 |
virtual int | createImageMessageByUploading (const char *filePath, long long &requestId)=0 |
virtual IRtmChannelAttribute * | createChannelAttribute ()=0 |
virtual int | setParameters (const char *parameters)=0 |
virtual int | queryPeersOnlineStatus (const char *peerIds[], int peerCount, long long &requestId)=0 |
virtual int | subscribePeersOnlineStatus (const char *peerIds[], int peerCount, long long &requestId)=0 |
virtual int | unsubscribePeersOnlineStatus (const char *peerIds[], int peerCount, long long &requestId)=0 |
virtual int | queryPeersBySubscriptionOption (PEER_SUBSCRIPTION_OPTION option, long long &requestId)=0 |
virtual int | setLocalUserAttributes (const RtmAttribute *attributes, int numberOfAttributes, long long &requestId)=0 |
virtual int | addOrUpdateLocalUserAttributes (const RtmAttribute *attributes, int numberOfAttributes, long long &requestId)=0 |
virtual int | deleteLocalUserAttributesByKeys (const char *attributeKeys[], int numberOfKeys, long long &requestId)=0 |
virtual int | clearLocalUserAttributes (long long &requestId)=0 |
virtual int | getUserAttributes (const char *userId, long long &requestId)=0 |
virtual int | getUserAttributesByKeys (const char *userId, const char *attributeKeys[], int numberOfKeys, long long &requestId)=0 |
virtual int | setChannelAttributes (const char *channelId, const IRtmChannelAttribute *attributes[], int numberOfAttributes, const ChannelAttributeOptions &options, long long &requestId)=0 |
virtual int | addOrUpdateChannelAttributes (const char *channelId, const IRtmChannelAttribute *attributes[], int numberOfAttributes, const ChannelAttributeOptions &options, long long &requestId)=0 |
virtual int | deleteChannelAttributesByKeys (const char *channelId, const char *attributeKeys[], int numberOfKeys, const ChannelAttributeOptions &options, long long &requestId)=0 |
virtual int | clearChannelAttributes (const char *channelId, const ChannelAttributeOptions &options, long long &requestId)=0 |
virtual int | getChannelAttributes (const char *channelId, long long &requestId)=0 |
virtual int | getChannelAttributesByKeys (const char *channelId, const char *attributeKeys[], int numberOfKeys, long long &requestId)=0 |
virtual int | getChannelMemberCount (const char *channelIds[], int channelCount, long long &requestId)=0 |
virtual int | setLogFile (const char *logfile)=0 |
virtual int | setLogFilter (LOG_FILTER_TYPE filter)=0 |
virtual int | setLogFileSize (int fileSizeInKBytes)=0 |
Protected 成员函数 | |
virtual | ~IRtmService () |
|
inlineprotectedvirtual |
|
pure virtual |
初始化一个 IRtmService 实例。
IRtmService 类中的所有方法都是异步执行的。
appId | Agora 发给你的 App ID。 如果 SDK 中缺少 App ID,请从 Agora 申请新的 App ID。 |
eventHandler | 一个 IRtmServiceEventHandler 对象,用于上传 Agora RTM SDK 运行事件给应用程序。 |
|
pure virtual |
增加事件监听器。
eventHandler | 一个 IRtmServiceEventHandler 对象。 |
|
pure virtual |
移除事件监听器。
eventHandler | 一个 IRtmServiceEventHandler 对象。 |
|
pure virtual |
释放当前 IRtmService 实例使用的所有资源。
|
pure virtual |
登录 Agora RTM 系统。
token | 用于登录 Agora RTM 系统的动态密钥。开启动态鉴权后可用。集成及测试阶段请将 token 设置为 null。 |
userId | 登录 Agora RTM 系统的用户 ID。该字符串不可超过 64 字节。不可设为空、null 或 "null"。以下为支持的字符集范围:
|
|
pure virtual |
登出 Agora RTM 系统。
本地用户收到回调 onLogout。 状态信息详见 LOGIN_ERR_CODE。
|
pure virtual |
更新 SDK 的 RTM Token。
在收到 onTokenExpired 回调时你需要调用此方法更新 Token。 onRenewTokenResult 回调会返回 Token 更新的结果。该方法的调用频率为 2 次每秒。
token | 新的 RTM Token。你需要自行生成 RTM Token。参考《生成 RTM Token》。 |
|
pure virtual |
peerId | 接收者的用户 ID。 |
message | 需要发送的消息。详见 IMessage 了解如何创建消息。 |
|
pure virtual |
通过 media ID 从 Agora 服务器下载文件或图片至本地内存。
方法调用结果由 SDK 通过 onMediaDownloadToMemoryResult 回调返回。
mediaId | 服务器上待下载的文件或图片对应的 media ID。 |
requestId | 标识本次下载请求的唯一 ID。 |
|
pure virtual |
通过 media ID 从 Agora 服务器下载文件或图片至本地指定地址。
方法调用结果由 SDK 通过 onMediaDownloadToFileResult 回调返回。
mediaId | 服务器上待下载的文件或图片对应的 media ID。 |
filePath | 下载文件或图片在本地存储的完整路径。文件路径必须为 UTF-8 编码格式。 |
requestId | 标识本次下载请求的唯一 ID。 |
|
pure virtual |
通过 request ID 取消一个正在进行中的文件或图片下载任务。
方法调用结果由 SDK 通过 onMediaCancelResult 回调返回。
requestId | 标识本次下载请求的唯一 ID。 |
|
pure virtual |
通过 request ID 取消一个正在进行中的文件或图片上传任务。
方法调用结果由 SDK 通过 onMediaCancelResult 回调返回。
requestId | 标识本次上传请求的唯一 ID。 |
|
pure virtual |
向指定用户(接收者)发送点对点消息或点对点的离线消息。
该方法允许你向离线用户发送点对点消息。如果指定用户在你发送离线消息时不在线,消息服务器会保存该条消息。请注意,目前我们只为每个接收端保存 200 条离线消息最长七天。当保存的离线消息超出限制时,最老的信息将会被最新的消息替换。
本方法可与老信令 SDK 的 endCall 方法兼容。你只需在用本方法发送文本消息时将消息头设为 AGORA_RTM_ENDCALL_PREFIX_\<channelId\>_\<your additional information\>
格式即可。请以 endCall 对应频道的 ID 替换 \<channelId\>
, \<your additional information\>
为附加文本信息。请注意:附加文本信息中不可使用下划线 "_" ,附加文本信息可以设为空字符串 ""。
peerId | 接收者的用户 ID。该字符串不可超过 64 字节。不可设为空、null 或 "null"。以下为支持的字符集范围:
|
message | 需要发送的消息。详见 IMessage 了解如何创建消息。 |
options | 消息发送选项。详见 SendMessageOptions。 |
|
pure virtual |
创建一个 Agora RTM 频道。
channelId | Agora RTM 频道名称。该字符串长度在 64 字节以内,不能设为空、null,或 "null"。以下为支持的字符集范围:
|
eventHandler | 详见 IChannelEventHandler。 |
channelId
的频道不存在,此方法会返回已创建的频道实例。如果已经存在具有相同 channelId
的频道,此方法会返回已存在的频道实例。null
: 方法调用失败。原因可能是 channelId
无效或频道数量超过限制。
|
pure virtual |
获取 IRtmCallManager 对象。
每个 IRtmService 实例都有各自唯一的 IRtmCallManager 实例。属于不同 IRtmService 实例的 IRtmCallManager 实例各不相同。
eventHandler | 一个 IRtmCallEventHandler 对象。 |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
通过 media ID 创建一个 IFileMessage 实例。
mediaId | 已上传到 Agora 服务器的文件的 media ID。 |
|
pure virtual |
通过 media ID 创建一个 IImageMessage 实例。
mediaId | 已上传到 Agora 服务器的图片的 media ID。 |
|
pure virtual |
上传一个文件到 Agora 服务器以获取一个相应的 IFileMessage 文件消息实例。
SDK 会通过 onFileMediaUploadResult回调返回方法的调用结果。如果方法调用成功,该回调返回一个对应的 IFileMessage 实例。
filePath | 待上传文件在本地的完整路径。文件路径必须为 UTF-8 编码格式。 |
requestId | 标识本次上传请求的唯一 ID。 |
|
pure virtual |
上传一个图片到 Agora 服务器以获取一个相应的 IImageMessage 图片消息实例。
SDK 会通过 onImageMediaUploadResult 回调返回方法的调用结果。如果方法调用成功,该回调返回一个对应的 IImageMessage 实例。
filePath | 待上传图片在本地的完整路径。文件路径必须为 UTF-8 编码格式。 |
requestId | 标识本次上传请求的唯一 ID。 |
|
pure virtual |
创建一个 IRtmChannelAttribute 实例。
|
pure virtual |
通过 JSON 配置 SDK 提供技术预览或特别定制功能。
parameters | JSON 格式的 SDK 选项。 |
|
pure virtual |
查询指定用户的在线状态。
SDK 将通过 onQueryPeersOnlineStatusResult 回调返回方法调用结果。
peerIds[] | 用户 ID 列表。最多不超过 256 个用户 ID。 |
peerCount | 列表长度。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
订阅指定单个或多个用户的在线状态。
SDK 将通过 onSubscriptionRequestResult 回调返回方法调用结果。
peerIds[] | 用户 ID 列表。最多不超过 512 个用户 ID。 |
peerCount | 被订阅用户列表长度。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
退订指定单个或多个用户的在线状态。
SDK 将通过 onSubscriptionRequestResult 回调返回方法调用结果。
peerIds[] | 用户 ID 列表。 |
peerCount | 被退订用户列表长度。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
获取某特定内容被订阅的用户列表。
SDK 将通过 onQueryPeersBySubscriptionOptionResult 回调返回方法调用结果。
option | 被订阅的类型。详见 PEER_SUBSCRIPTION_OPTION 。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
全量设置本地用户的属性。
SDK 将通过 onSetLocalUserAttributesResult 回调返回方法调用结果。
attributes | 待设置的属性。详见 RtmAttribute。 |
numberOfAttributes | 属性的数量。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
添加或更新本地用户的属性。
SDK 将通过 onAddOrUpdateLocalUserAttributesResult 回调返回方法调用结果。
attributes | 待增加或更新的属性。 |
numberOfAttributes | 属性的数量。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
删除本地用户的指定属性。
SDK 将通过 onDeleteLocalUserAttributesResult 回调返回方法调用结果。
attributeKeys | 属性名数组。 |
numberOfKeys | 属性名数组的长度。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
清空本地用户的属性。
SDK 将通过 onClearLocalUserAttributesResult 回调返回方法调用结果。
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
查询指定用户的全部属性。
SDK 将通过 onGetUserAttributesResult 回调返回方法调用结果。
userId | 指定用户的用户 ID。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
查询指定用户指定属性名的属性。
SDK 将通过 onGetUserAttributesResult 回调返回方法调用结果。
userId | 指定用户的用户 ID。 |
attributeKeys | 属性名数组。 |
numberOfKeys | 属性名数组的长度。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
全量设置某指定频道的属性。
SDK 将通过 onSetChannelAttributesResult 回调返回方法调用结果。
channelId | 该指定频道的频道 ID。 |
attributes | 频道属性数组。详见 IRtmChannelAttribute。 |
numberOfAttributes | 频道属性条数。 |
options | 频道属性操作选项。详见 ChannelAttributeOptions。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
添加或更新某指定频道的属性。
SDK 将通过 onAddOrUpdateChannelAttributesResult 回调返回方法调用结果。
channelId | 该指定频道的频道 ID。 |
attributes | 频道属性数组。详见 IRtmChannelAttribute。 |
numberOfAttributes | 频道属性条数。 |
options | 频道属性操作选项。详见 ChannelAttributeOptions。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
删除某指定频道的指定属性。
SDK 将通过 onDeleteChannelAttributesResult 回调返回方法调用结果。
channelId | 该指定频道的频道 ID。 |
attributeKeys | 频道属性名数组。 |
numberOfKeys | 频道属性名个数。 |
options | 频道属性操作选项。详见 ChannelAttributeOptions。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
清空某指定频道的属性。
SDK 将通过 onClearChannelAttributesResult 回调返回方法调用结果。
channelId | 该指定频道的频道 ID。 |
options | 频道属性操作选项。详见 ChannelAttributeOptions。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
查询某指定频道的全部属性。
SDK 将通过 onGetChannelAttributesResult 回调返回方法调用结果。
channelId | 该指定频道的频道 ID。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
查询某指定频道指定属性名的属性。
SDK 将通过 onGetChannelAttributesResult 回调返回方法调用结果。
channelId | 该指定频道的频道 ID。 |
attributeKeys | 频道属性名数组。 |
numberOfKeys | 频道属性名的个数。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
查询单个或多个频道的成员人数。
SDK 将通过 onGetChannelMemberCountResult 回调返回方法调用结果。
channelIds | 指定频道名数组。 |
channelCount | 待查询的频道数目。 |
requestId | 标识本次请求的的唯一 ID。 |
|
pure virtual |
设定日志文件的默认地址。
logfile | 日志文件的绝对路径。logfile 的编码格式为 UTF-8。 |
|
pure virtual |
设置日志输出等级。
设置 SDK 的输出日志输出等级。不同的输出等级可以单独或组合使用。日志级别顺序依次为 OFF、CRITICAL、ERROR、WARNING 和 INFO。选择一个级别,你就可以看到在该级别之前所有级别的日志信息。例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所有日志信息。
filter | 日志输出等级。详见 LOG_FILTER_TYPE 。 |
|
pure virtual |
设置 SDK 输出的单个日志文件的大小,单位为 KB。 SDK 设有 2 个大小相同的日志文件。
fileSizeInKBytes | SDK 输出的单个日志文件的大小,单位为 KB。(RTM C++ SDK for Windows)默认值为 10240 (KB);(RTM C++ SDK for Linux)默认值为 102400 (KB)。取值范围为 [512 KB, 1 GB]。 |