#include <NGIAgoraRtcConnection.h>
Public 成员函数 | |
virtual int | connect (const char *token, const char *channelId, user_id_t userId)=0 |
virtual int | disconnect ()=0 |
virtual int | startLastmileProbeTest (const LastmileProbeConfig &config)=0 |
virtual int | stopLastmileProbeTest ()=0 |
virtual int | renewToken (const char *token)=0 |
virtual TConnectionInfo | getConnectionInfo ()=0 |
virtual ILocalUser * | getLocalUser ()=0 |
virtual int | getRemoteUsers (UserList &users)=0 |
virtual int | getUserInfo (user_id_t userId, agora::UserInfo &userInfo)=0 |
virtual int | registerObserver (IRtcConnectionObserver *observer, void(*safeDeleter)(IRtcConnectionObserver *)=NULL)=0 |
virtual int | unregisterObserver (IRtcConnectionObserver *observer)=0 |
virtual int | registerNetworkObserver (INetworkObserver *observer, void(*safeDeleter)(INetworkObserver *)=NULL)=0 |
virtual int | unregisterNetworkObserver (INetworkObserver *observer)=0 |
virtual conn_id_t | getConnId ()=0 |
virtual RtcStats | getTransportStats ()=0 |
virtual agora::base::IAgoraParameter * | getAgoraParameter ()=0 |
virtual int | createDataStream (int *streamId, bool reliable, bool ordered, bool sync)=0 |
virtual int | sendStreamMessage (int streamId, const char *data, size_t length)=0 |
virtual int | enableEncryption (bool enabled, const EncryptionConfig &config)=0 |
virtual int | getUserInfoByUserAccount (const char *userAccount, rtc::UserInfo *userInfo)=0 |
virtual int | getUserInfoByUid (uid_t uid, rtc::UserInfo *userInfo)=0 |
Protected 成员函数 | |
~IRtcConnection () | |
IRtcConnection
类,用于管理 SDK 与 RTC 频道之间的连接。
连接完成之后,你可以通过 AgoraLocalUser
对象在 RTC 频道中发送和接收媒体流。
连接频道是异步操作,你可以通过 IRtcConnectionObserver 对象监听连接状态变化和事件。IRtcConnection
还可以监控频道中的远端用户是否加入或离开频道。
|
inlineprotected |
|
pure virtual |
连接 RTC 频道。
方法成功时,连接状态由 CONNECTION_STATE_DISCONNECTED(1)
变更为 CONNECTION_STATE_CONNECTING(2)
。
根据连接是否成功,连接状态会变更为 CONNECTION_STATE_CONNECTED(3)
或 CONNECTION_STATE_FAILED(5)
。 SDK 会触发 onConnected
或 onDisconnected
提醒连接状态变更。
token | RTC token。详见 使用 Token 鉴权 。 |
channelId | 频道名。必须为字符串且长度不超过 64 字节。支持的字符类型包括:
|
userId | 本地用户 ID。长度不超过 64 字节。如果你不设置用户 ID 或设为 NULL,SDK 在 onConnected 回调中自动返回一个 user ID。 你必须自行记录并管理此 ID。根据你在 initialize 方法中选择的用户 ID 类型,该参数支持的字符集也不同:
|
|
pure virtual |
创建数据流。
每个用户在每个频道中最多只能创建 5 个数据流。
reliable
设为 true
且 ordered
设为 false
。ordered
参数设置为 true
。sync
参数设置为 true
。声网推荐你仅在需要实现特殊场景,例如歌词同步时,设置为与音频同步。streamId | 输出参数,数据流 ID。 |
reliable | 该数据流是否可靠:
|
ordered | 该数据流是否有序:
|
sync | 是否与本地发送的音频流同步:
|
|
pure virtual |
与 RTC 频道断开连接。
SDK 与频道断开连接时,连接状态变更为 CONNECTION_STATE_DISCONNECTED(1)
。你还可以通过 onDisconnected 回调得知。
|
pure virtual |
开启或关闭内置加密。
在安全要求较高的场景下,声网建议你在加入频道前,调用本方法开启内置加密。
同一频道内所有用户必须使用相同的加密模式和密钥。用户离开频道后,SDK 会自动关闭加密。如需重新开启加密,你需要在用户再次加入频道前调用该方法。
enabled | 是否开启内置加密:
|
config | 配置内置加密模式和密钥。详见 EncryptionConfig 。 |
|
pure virtual |
获取 IAgoraParameter
对象。
|
pure virtual |
获取连接信息。
|
pure virtual |
获取连接 ID。
|
pure virtual |
获取本地用户对象的指针。每个连接仅对应一个本地用户。
|
pure virtual |
|
pure virtual |
获取 RTC 连接的传输状态。
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
注册 RTC 连接 observer。你必须先创建 IRtcConnection
对象。
observer | IRtcConnectionObserver 对象。 |
|
pure virtual |
更新 Token。
Token 会在一定时间后过期。
当收到 onTokenPrivilegeWillExpire 回调时,你必须从服务端生成一个新的 token,并使用该方法更新 Token。否则,SDK 会与频道断开连接。
token | 新 Token。 |
|
pure virtual |
发送数据流消息。
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:
成功调用该方法后,远端会触发 onStreamMessage 回调,远端用户可以在该回调中获取接收到的流消息。
streamId | 数据流 ID。可以通过 createDataStream 获取。 |
data | 待发送的数据。 |
length | 数据长度。 |
|
pure virtual |
开始通话前网络质量探测。
开始通话前网络质量探测,向用户反馈上下行网络的带宽、丢包、网络抖动和往返时延数据。
启用该方法后,SDK 会依次返回如下 2 个回调:
config | Last mile 网络探测配置,详见 LastmileProbeConfig 。 |
|
pure virtual |
停止通话前网络质量探测。
|
pure virtual |
|
pure virtual |