@interface RTS : NSObject
类型 | 名称 |
---|---|
id | delegate |
返回 | 名称 |
---|---|
void | destroyRTS |
NSString* | getSdkVersion |
int | setLogConfig: |
@property(nonatomic, weak) id<RTSDelegate> _Nullable delegate;
+ (void)destroyRTS;
销毁引擎实例对象。
注意
+ (NSString * _Nonnull)getSdkVersion;
获取 SDK 当前的版本号。
返回值
SDK 当前的版本号。
+ (int) setLogConfig:(ByteRTCLogConfig *_Nonnull) logConfig;
配置 SDK 本地日志参数,包括日志级别、存储路径、可使用的最大缓存空间。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
logConfig | ByteRTCLogConfig* | 本地日志参数,参看 ByteRTCLogConfig。 |
返回值
注意
本方法必须在调用 createRTS:delegate:parameters: 之前调用。
+ (RTS * _Nullable)createRTS:(NSString * _Nonnull)appId delegate:(id<RTSDelegate> _Nullable)delegate parameters:(NSDictionary* _Nullable)parameters;
创建引擎对象。
如果当前进程中未创建引擎实例,那么你必须先使用此方法,以使用 RTS 提供的各种消息能力。
如果当前进程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
appId | NSString* | 每个应用的唯一标识符,由控制台随机生成的。不同的 AppId 生成的实例完全独立,无法互通。 |
delegate | id | SDK 回调给应用层的 delegate,详见 RTSDelegate |
parameters | NSDictionary* | 用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。 |
返回值
可用的 RTSDelegate 实例。
- (int)setBusinessId:(NSString* _Nullable)businessId;
设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
businessId | NSString* | 用户设置的自己的 businessId 值。businessId 只是一个标签,颗粒度需要用户自定义。 |
返回值
注意
需要在调用 joinRoom 之前调用,joinRoom之后调用该方法无效。
- (int)setRuntimeParameters:(NSDictionary * _Nullable)parameters;
设置运行时的参数
传入参数
参数名 | 类型 | 说明 |
---|---|---|
parameters | NSDictionary* | 保留参数 |
返回值
- (RTSRoom * _Nullable)createRoom:(NSString * _Nonnull)roomId;
创建房间实例。
调用此方法仅返回一个房间实例,你仍需调用 joinRoom 才能真正地创建/加入房间。
多次调用此方法以创建多个 RTSRoom 实例。分别调用各 RTSRoom 实例中的 joinRoom 方法,同时加入多个房间。
多房间模式下,用户可以同时订阅各房间的音视频流。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
roomId | NSString* | 标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128} 。 |
返回值
创建的 RTSRoom 房间实例。
注意
- (int)login:(NSString * _Nonnull)token uid:(NSString * _Nonnull)uid;
登录 RTS 服务器。
必须先登录,才能收发消息。
在调用本接口登录后,如果想要登出,需要调用 logout
传入参数
参数名 | 类型 | 说明 |
---|---|---|
token | NSString* | 用户登录必须携带的 Token,用于鉴权验证。 测试时可使用控制台生成临时 Token, roomId 填任意值。正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token, roomId 置空,Token 有效期及生成方式参看使用 Token 完成鉴权。 |
uid | NSString* | 用户 ID, 在 appid 的维度下唯一。 |
返回值
方法调用结果:
0
:成功-1
:失败。无效参数-2
:无效调用。用户已经登录。成功登录后再次调用本接口将收到此返回值-3
:失败。Engine 为空。注意
本地用户调用此方法登录后,会收到 rtsEngine:onLoginResult:errorCode:elapsed: 回调通知登录结果。
- (int)logout;
登出 RTS 服务器。
调用本接口登出后,无法再调用消息相关的方法或收到相关回调。
返回值
注意
本地用户调用此方法登出后,会收到 rtcEngineOnLogout:rtsEngineOnLogout: 回调通知结果,远端用户不会收到通知。
- (int)updateLoginToken:(NSString * _Nonnull)token;
更新用户用于登录的 Token
Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
调用 login:uid: 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 rtsEngine:onLoginResult:errorCode:elapsed: 回调通知,错误码为 ByteRTCLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
token | NSString* | 更新的动态密钥 |
返回值
注意
- (int)setServerParams:(NSString * _Nonnull)signature url:(NSString * _Nonnull)url;
设置应用服务器参数
客户端调用 sendServerMessage: 或 sendServerBinaryMessage: 发送消息给应用服务器之前,必须需要设置有效签名和应用服务器地址。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
signature | NSString* | 动态签名 应用服务器会使用该签名对请求进行鉴权验证。 |
url | NSString* | 应用服务器的地址 |
返回值
注意
- (int)getPeerOnlineStatus:(NSString * _Nonnull)peerUserId;
查询本地/远端用户的登录状态。
在发送消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己查看自己的登录状态。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
peerUserId | NSString* | 需要查询的用户 ID |
返回值
注意
- (int64_t)sendMessage:(NSString * _Nonnull)userId message:(NSString * _Nonnull)messageStr config:(int)config;
给指定的用户发送点对点文本消息(p2p)
传入参数
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString* | 消息接收用户的 ID |
messageStr | NSString* | 发送的文本消息内容,消息不超过 64KB。 |
返回值
方法调用结果:
注意
- (int64_t)sendBinaryMessage:(NSString * _Nonnull)userId message:(NSData * _Nonnull)messageStr config:(int)config;
给指定的用户发送点对点二进制消息(P2P)。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString* | 消息接收用户的 ID |
messageStr | NSData* | 发送的二进制消息内容,不超过 46KB。 |
返回值
方法调用结果:
注意
- (int64_t)sendServerMessage:(NSString * _Nonnull)messageStr;
客户端给应用服务器发送文本消息(P2Server)。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
messageStr | NSString* | 发送的文本消息内容,不超过 64KB。 |
返回值
方法调用结果:
注意
- (int64_t)sendServerBinaryMessage:(NSData *_Nonnull)messageStr;
客户端给应用服务器发送二进制消息(P2Server)。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
messageStr | NSData* | 发送的二进制消息内容,消息不超过 46KB。 |
返回值
方法调用结果:
注意
- (int)setCellularEnhancement:(BOOL)enhance;
启用蜂窝网络辅助增强,改善通话质量。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
enhance | BOOL | 是否开启。默认不开启。 |
返回值
方法调用结果:
- (int)setLocalProxy:(NSArray <ByteRTCLocalProxyInfo *> * _Nonnull)configurations;
设置本地代理。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
configurations | NSArray <ByteRTCLocalProxyInfo>** | 本地代理配置参数。参看 ByteRTCLocalProxyInfo。 你可以根据自己的需要选择同时设置 Http 隧道 和 Socks5 两类代理,或者单独设置其中一类代理。如果你同时设置了 Http 隧道 和 Socks5 两类代理,此时,媒体和信令采用 Socks5 代理, Http 请求采用 Http 隧道代理;如果只设置 Http 隧道 或 Socks5 一类代理,媒体、信令和 Http 请求均采用已设置的代理。 调用此接口设置本地代理后,若想清空当前已有的代理设置,可再次调用此接口,选择不设置任何代理即可清空。 |
注意
@interface RTSRoom : NSObject
类型 | 名称 |
---|---|
id | delegate |
返回 | 名称 |
---|---|
void | destroy |
int | setRTSRoomDelegate: |
int | joinRoom |
int | leaveRoom |
int64_t | sendRoomMessage: |
int64_t | sendRoomBinaryMessage: |
@property(nonatomic, weak) id<RTSRoomDelegate> _Nullable delegate;
- (void)destroy;
退出并销毁调用 createRoom: 所创建的房间实例。
- (int)setRTSRoomDelegate:(id<RTSRoomDelegate> _Nullable)roomDelegate;
通过设置 RTSRoomDelegate 代理,可以监听此 RTSRoom
对象对应的回调事件。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
roomDelegate | id | 参见 RTSRoomDelegate。 |
返回值
- (int)joinRoom;
加入房间。
调用 createRoom: 创建房间后,可调用该方法进房,在房间内收发广播消息。
返回值
方法调用结果:
注意
- (int)leaveRoom;
离开房间。
用户调用此方法离开房间,结束实时消息通信,释放所有通信相关的资源。
返回值
方法调用结果。
注意
- (int64_t)sendRoomMessage:(NSString * _Nonnull)message;
给房间内的所有其他用户发送文本消息。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
message | NSString* | 发送的文本消息内容。 消息不超过 64KB。 |
返回值
这次发送消息的编号,从 1 开始递增。
注意
- (int64_t)sendRoomBinaryMessage:(NSData * _Nonnull)message;
给房间内的所有其他用户发送二进制消息。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
message | NSData* | 用户发送的二进制广播消息 消息不超过 46KB。 |
返回值
这次发送消息的编号,从 1 开始递增。
注意