fetchToken method
Implementation
Future<void> fetchToken() async {
tools.log("ChatCallKitManagerImpl: fetchToken called");
if (_chat.model.hasJoined) return;
if (_chat.model.curCall == null ||
_rtc.agoraAppId == null ||
rtcTokenHandler == null) {
return;
}
Map<String, int> agoraToken = await rtcTokenHandler!.call(
_chat.model.curCall!.channel,
_rtc.agoraAppId!,
);
tools.log("ChatCallKitManagerImpl: fetchToken called, agoraToken: $agoraToken");
if (agoraToken.isEmpty) {
throw ChatCallKitError.process(
ChatCallKitErrorProcessCode.fetchTokenFail, 'fetch token fail');
}
if (_chat.model.curCall == null) {}
String? username = ChatCallKitClient.getInstance.currentUserId;
if (username == null) return;
tools.log(
"ChatCallKitManagerImpl: joinChannel called, "
"callType: ${_chat.model.curCall!.callType}, "
"agoraToken: ${agoraToken.keys.first}, "
"channel: ${_chat.model.curCall!.channel}, "
"agoraUid: ${_chat.model.agoraUid ?? agoraToken.values.first}"
);
await _rtc.joinChannel(
_chat.model.curCall!.callType,
agoraToken.keys.first,
_chat.model.curCall!.channel,
_chat.model.agoraUid ?? agoraToken.values.first,
);
}