private async Task Login() { var account = AccountText.Text; AgoraRtm.Current = account; var token = await AgoraTokenService.GetRtmToken(account); AgoraRtm.RtmKit.LoginByToken(token, account, (status) => { if (status == Xamarin.Agora.AgoraRtmLoginErrorCode.Ok) { InvokeOnMainThread(() => { AgoraRtm.OneToOneMessageType = OfflineSwitch.On ? OneToOneMessageType.Offline : OneToOneMessageType.Normal; //getting offline messages var rtmDelegate = new RtmDelegate(); rtmDelegate.AppendMessage += (user, message) => AgoraRtm.AddOfflineMessage(message, user); AgoraRtm.UpdateKit(rtmDelegate); AgoraRtm.Status = LoginStatus.Online; PerformSegue("mainToTab", null); }); } }); }
public async Task Init(Context context, string userId) { _context = context; _agoraRtmHandler = new AgoraRtmHandler(); _agoraRtmHandler.OnSignalReceived += (signal) => { Log($"Signal received from {signal.RtcPeerId}"); OnSignalReceived?.Invoke(signal); }; _rtmClient = RtmClient.CreateInstance(_context, AgoraTestConstants.AgoraAPI, _agoraRtmHandler); var rtmToken = await AgoraTokenService.GetRtmToken(userId); var loginCallback = new ResultCallback(); loginCallback.OnSuccessAction += (obj) => { UserName = userId; OnLogin?.Invoke(true); Log("Login Success"); }; loginCallback.OnFailureAction += (err) => { OnLogin?.Invoke(false); Log("Login Fail"); }; _rtmClient.Login(rtmToken, userId, loginCallback); }
private async Task DoLogin() { _isInChat = true; var token = await AgoraTokenService.GetRtmToken(_userId); _rtmClient.Login(token, _userId, _callbackResult); }
public async Task Init(string userId) { var rtmToken = await AgoraTokenService.GetRtmToken(userId); _rtmKit.LoginByToken(rtmToken, userId, (status) => { var success = status == AgoraRtmLoginErrorCode.Ok; OnLogin?.Invoke(success); if (success) { UserName = userId; var rtmDelegate = new RtmDelegate(); rtmDelegate.OnMessageReceived += OmMessageReceived; _rtmKit.AgoraRtmDelegate = rtmDelegate; } }); }