RTS
@interface RTS : NSObject
objectivec

SDK 回调给应用层的 delegate 对象

静态函数
返回名称
voiddestroyRTS
NSString*getSdkVersion
成员函数
返回名称
RTS*createRTS:delegate:parameters:
intsetBusinessId:
voidsetRuntimeParameters:
RTSRoom*createRoom:
int64_tlogin:uid:
voidlogout
voidupdateLoginToken:
voidsetServerParams:url:
voidgetPeerOnlineStatus:
int64_tsendMessage:message:config:
int64_tsendBinaryMessage:message:config:
int64_tsendServerMessage:
int64_tsendServerBinaryMessage:
函数说明

destroyRTS
+ (void)destroyRTS;
objectivec

销毁引擎实例对象。

注意

getSdkVersion
+ (NSString * _Nonnull)getSdkVersion;
objectivec

获取 SDK 当前的版本号。

返回值
SDK 当前的版本号。

createRTS:delegate:parameters:
+ (RTS * _Nullable)createRTS:(NSString * _Nonnull)appId delegate:(id<RTSDelegate> _Nullable)delegate parameters:(NSDictionary* _Nullable)parameters;
objectivec

创建引擎对象

如果当前进程中未创建引擎实例,那么你必须先使用此方法,以使用 RTS 提供的各种消息能力。

如果当前进程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。

传入参数

参数名类型说明
appIdNSString*每个应用的唯一标识符,由控制台随机生成的。不同的 AppId 生成的实例完全独立,无法互通。
delegateidSDK 回调给应用层的 delegate,详见 RTSDelegate
parametersNSDictionary*用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。

返回值
可用的 RTSDelegate 实例。

setBusinessId:
- (int)setBusinessId:(NSString* _Nullable)businessId;
objectivec

设置业务标识参数

可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。

传入参数

参数名类型说明
businessIdNSString*用户设置的自己的 businessId 值。businessId 只是一个标签,颗粒度需要用户自定义。

返回值

注意
需要在调用 joinRoom 之前调用,joinRoom之后调用该方法无效。

setRuntimeParameters:
- (void)setRuntimeParameters:(NSDictionary * _Nullable)parameters;
objectivec

设置运行时的参数

传入参数

参数名类型说明
parametersNSDictionary*保留参数

createRoom:
- (RTSRoom * _Nullable)createRoom:(NSString * _Nonnull)roomId;
objectivec

创建并获取一个 RTSRoom 对象

用户可以多次调用此方法创建多个 RTSRoom 实例,再分别调用各 RTSRoom 对象的 joinRoom 方法,实现同时加入多个房间。

传入参数

参数名类型说明
roomIdNSString*标识通话房间的房间 ID,最大长度为 128 字节的非空字符串。支持的字符集范围为:
• 26 个大写字母 A ~ Z
• 26 个小写字母 a ~ z
• 10 个数字 0 ~ 9
• 下划线 "_", at 符 "@", 减号 "-"
多房间模式下,调用创建房间接口后,请勿调用同样的 roomID 创建房间,否则会导致创建房间失败。

返回值
创建的 RTSRoom 实例

login:uid:
- (int64_t)login:(NSString * _Nonnull)token uid:(NSString * _Nonnull)uid;
objectivec

登录 RTS 服务器。

必须先登录,才能收发消息。

在调用本接口登录后,如果想要登出,需要调用 logout

传入参数

参数名类型说明
tokenNSString*用户登录必须携带的 Token,用于鉴权验证。
测试时可使用控制台生成临时 Token,roomId 填任意值。
正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token,roomId 置空,Token 有效期及生成方式参看使用 Token 完成鉴权。
uidNSString*用户 ID
用户 ID 在 appid 的维度下是唯一的。

返回值

注意
本地用户调用此方法登录后,会收到 rtsEngine:onLoginResult:errorCode:elapsed: 回调通知登录结果。

logout
- (void)logout;
objectivec

登出 RTS 服务器。

调用本接口登出后,无法再调用消息相关的方法或收到相关回调。

注意
本地用户调用此方法登出后,会收到 rtsEngineOnLogout: 回调通知结果,远端用户不会收到通知。

updateLoginToken:
- (void)updateLoginToken:(NSString * _Nonnull)token;
objectivec

更新用户用于登录的 Token

Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。

调用 login:uid: 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 rtsEngine:onLoginResult:errorCode:elapsed: 回调通知,错误码为 ByteRTCLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名类型说明
tokenNSString*更新的动态密钥

注意

setServerParams:url:
- (void)setServerParams:(NSString * _Nonnull)signature url:(NSString * _Nonnull)url;
objectivec

设置应用服务器参数

客户端调用 sendServerMessage: 或 sendServerBinaryMessage: 发送消息给应用服务器之前,必须需要设置有效签名和应用服务器地址。

传入参数

参数名类型说明
signatureNSString*动态签名,应用服务器可使用该签名验证消息来源。
签名需自行定义,可传入任意非空字符串,建议将 uid 等信息编码为签名。
设置的签名会以 post 形式发送至通过本方法中 url 参数设置的应用服务器地址。
urlNSString*应用服务器的地址

注意

getPeerOnlineStatus:
- (void)getPeerOnlineStatus:(NSString * _Nonnull)peerUserId;
objectivec

查询本地/远端用户的登录状态。

传入参数

参数名类型说明
peerUserIdNSString*需要查询的用户 ID

注意

sendMessage:message:config:
- (int64_t)sendMessage:(NSString * _Nonnull)userId message:(NSString * _Nonnull)messageStr config:(int)config;
objectivec

给指定的用户发送点对点文本消息(p2p)

传入参数

参数名类型说明
userIdNSString*消息接收用户的 ID
messageStrNSString*发送的文本消息内容
消息不超过 64KB。

返回值

注意

sendBinaryMessage:message:config:
- (int64_t)sendBinaryMessage:(NSString * _Nonnull)userId message:(NSData * _Nonnull)messageStr config:(int)config;
objectivec

给指定的用户发送点对点二进制消息(p2p)

传入参数

参数名类型说明
userIdNSString*消息接收用户的 ID
messageStrNSData*发送的二进制消息内容
消息不超过 64KB。

返回值

注意

sendServerMessage:
- (int64_t)sendServerMessage:(NSString * _Nonnull)messageStr;
objectivec

客户端给应用服务器发送文本消息(P2Server)

传入参数

参数名类型说明
messageStrNSString*发送的文本消息内容
消息不超过 64KB。

返回值

注意

sendServerBinaryMessage:
- (int64_t)sendServerBinaryMessage:(NSData * _Nonnull)messageStr;
objectivec

客户端给应用服务器发送二进制消息(P2Server)

传入参数

参数名类型说明
messageStrNSData*发送的二进制消息内容
消息不超过 64KB。

返回值

注意

RTSRoom
@interface RTSRoom : NSObject
objectivec
成员函数
返回名称
voiddestroy
voidsetRTSRoomDelegate:
intjoinRoom
intleaveRoom
int64_tsendRoomMessage:
int64_tsendRoomBinaryMessage:
函数说明

destroy
- (void)destroy;
objectivec

销毁房间

注意
退出并销毁调用 createRoom: 所创建的房间。

setRTSRoomDelegate:
- (void)setRTSRoomDelegate:(id<RTSRoomDelegate> _Nullable)roomDelegate;
objectivec

通过设置 RTSRoomDelegate 代理,可以监听此 RTSRoom 对象对应的回调事件。

传入参数

参数名类型说明
roomDelegateid参见 RTSRoomDelegate。

joinRoom
- (int)joinRoom;
objectivec

加入房间。

调用 createRoom: 创建房间后,可调用该方法进房,在房间内收发广播消息。

返回值
方法调用结果。

注意

leaveRoom
- (int)leaveRoom;
objectivec

离开房间。

用户调用此方法离开房间,结束实时消息通信,释放所有通信相关的资源。

返回值
方法调用结果。

注意

sendRoomMessage:
- (int64_t)sendRoomMessage:(NSString * _Nonnull)message;
objectivec

给房间内的所有其他用户发送文本消息。

传入参数

参数名类型说明
messageNSString*发送的文本消息内容。
消息不超过 64KB。

返回值
这次发送消息的编号,从 1 开始递增。

注意

sendRoomBinaryMessage:
- (int64_t)sendRoomBinaryMessage:(NSData * _Nonnull)message;
objectivec

给房间内的所有其他用户发送二进制消息。

传入参数

参数名类型说明
messageNSData*用户发送的二进制广播消息
消息不超过 64KB。

返回值
这次发送消息的编号,从 1 开始递增。

注意