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);
                    });
                }
            });
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
                }
            });
        }