joinChannel method

Future<void> joinChannel (
  1. String token,
  2. String channelName,
  3. String optionalInfo,
  4. int optionalUid
)

加入频道。

该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。 使用不同 App ID 的 App 是不能互通的。如果已在通话中,用户必须调用 RtcEngine.leaveChannel 退出当前通话, 才能进入下一个频道。

成功调用该方加入频道后,本地会触发 RtcEngineEventHandler.joinChannelSuccess 回调; 通信场景下的用户和直播场景下的主播加入频道后,远端会触发 RtcEngineEventHandler.userJoined 回调。

在网络状况不理想的情况下,客户端可能会与 Agora 的服务器失去连接;SDK 会自动尝试重连,重连成功后, 本地会触发 RtcEngineEventHandler.rejoinChannelSuccess 回调。

Note

  • 频道内每个用户的 UID 必须是唯一的。如果将 uid 设为 0,系统将自动分配一个 UID。 如果想要从不同的设备同时接入同一个频道,请确保每个设备上使用的 UID 是不同的。
  • 请确保用于生成 Token 的 App ID 和 create 方法创建 RtcEngine 对象时用的 App ID 一致。

Parameter token 在 App 服务器端生成的用于鉴权的 Token:

Parameter channelName 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z
  • 26 个大写英文字母 A-Z
  • 10 个数字 0-9
  • 空格
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "", "", "^", "_", " {", "}", "|", "~", ","

Parameter optionalInfo (非必选项)开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户。

Parameter optionalUid (非必选项)用户 ID,32 位无符号整数。建议设置范围:1 到 (2^32-1),并保证唯一性。 如果不指定(即设为 0),SDK 会自动分配一个,并在 RtcEngineEventHandler.joinChannelSuccess 回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。

Implementation

@override
Future<void> joinChannel(
    String token, String channelName, String optionalInfo, int optionalUid) {
  return _invokeMethod('joinChannel', {
    'token': token,
    'channelName': channelName,
    'optionalInfo': optionalInfo,
    'optionalUid': optionalUid
  });
}