Пример #1
0
        public void Init()
        {
            string appID = _context.GetString(Resource.String.agora_app_id);

            _myRtmClientListener = new RtmClientListener();
            _myRtmClientListener.MessageReceived += OnRtmMessageReceived;
            _myRtmClientListener.StateChanged    += OnStateChanged;

            try
            {
                _rtmClient = RtmClient.CreateInstance(_context, appID, _myRtmClientListener);

#if DEBUG
                _rtmClient.SetParameters("{\"rtm.log_filter\": 65535}");
#endif
            }
            catch (Exception e)
            {
                throw new Exception($"NEED TO check rtm sdk init fatal error\n {e.StackTrace}");
            }

            _callManager = _rtmClient.RtmCallManager;
            _callManager.RemoteInvitationReceived      += RemoteInvitationReceived;
            _callManager.RemoteInvitationFailure       += RemoteInvitationFailure;
            _callManager.LocalInvitationReceivedByPeer += LocalInvitationReceivedByPeer;
            _callManager.RemoteInvitationAccepted      += RemoteInvitationAccepted;
            _callManager.RemoteInvitationRefused       += RemoteInvitationRefused;
            _callManager.LocalInvitationRefused        += LocalInvitationRefused;
            _callManager.LocalInvitationAccepted       += LocalInvitationAccepted;
        }
Пример #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);
        }