媒体流附属信息分发
createDataStream [1/2]
创建数据流。
- (int)createDataStream:(NSInteger * _Nonnull)streamId
reliable:(BOOL)reliable
ordered:(BOOL)ordered;
在 AgoraRtcEngineKit
生命周期内,每个用户最多只能创建 5 个数据流。离开频道时数据流会被销毁,如需使用需要重新创建数据流。
注意:
-
该方法需要在加入频道后调用。
-
不可将
reliable
设为YES
且将ordered
设为NO
。
参数
参数名 | 描述 |
---|---|
streamId | 输出参数,创建好的数据流 ID。 |
reliable | 该数据流是否可靠:
|
ordered | 该数据流是否有序:
|
返回值
-
0: 创建数据流成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
createDataStream [2/2]
创建数据流。
- (int)createDataStream:(NSInteger * _Nonnull)streamId
config:(AgoraDataStreamConfig * _Nonnull)config;
该方法用于创建数据流。每个用户在每个频道中最多只能创建 5 个数据流。
相比 createDataStream [1/2]
,该方法不支持数据可靠。接收方会丢弃超出发送时间 5 秒后的数据包。
参数
参数名 | 描述 |
---|---|
streamId | 输出参数,创建好的数据流 ID。 |
config | 数据流设置。详见 |
返回值
-
0: 创建数据流成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
sendStreamMessage
发送数据流。
- (int)sendStreamMessage:(NSInteger)streamId
data:(NSData * _Nonnull)data;
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:
-
频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。
-
每个客户端每秒最多能发送 6 KB 数据。
-
频道内每人最多能同时有 5 个数据通道。
成功调用该方法后,远端会触发 receiveStreamMessageFromUid
回调,远端用户可以在该回调中获取接收到的流消息;
若调用失败,远端会触发 didOccurStreamMessageErrorFromUid
回调。
注意:
-
请确保在调用该方法前,已调用
createDataStream [2/2]
创建了数据通道。 -
直播场景下,该方法仅适用于主播用户。
参数
参数名 | 描述 |
---|---|
streamId | 数据流 ID。可以通过 |
data | 待发送的数据。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
receiveStreamMessageFromUid
接收到对方数据流消息的回调。
- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine
receiveStreamMessageFromUid:(NSUInteger)uid
streamId:(NSInteger)streamId
data:(NSData * _Nonnull)data;
该回调表示本地用户收到了远端用户调用 sendStreamMessage
方法发送的流消息。
参数
参数名 | 描述 |
---|---|
engine |
|
uid | 发送消息的用户 ID。 |
streamId | 接收到的消息的 Stream ID。 |
data | 接收到的数据。 |
didOccurStreamMessageErrorFromUid
接收对方数据流消息发生错误的回调。
- (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine
didOccurStreamMessageErrorFromUid:(NSUInteger)uid
streamId:(NSInteger)streamId
error:(NSInteger)error
missed:(NSInteger)missed
cached:(NSInteger)cached;
该回调表示本地用户未收到远端用户调用 sendStreamMessage
方法发送的流消息。
参数
参数名 | 描述 |
---|---|
engine |
|
uid | 发送消息的用户 ID。 |
streamId | 接收到的消息的 Stream ID。 |
error | 发生错误的错误码。 |
missed | 丢失的消息数量。 |
cached | 数据流中断时,后面缓存的消息数量。 |