Example #1
0
        public async Task <bool> Connect(bool reconnect = false)
        {
            if (_transport == null)
            {
                _transport = new TcpTransport(_session.ServerAddress, _session.Port);
            }

            if (_session.AuthKey == null || reconnect)
            {
                var result = await Authenticator.DoAuthentication(_transport);

                _session.AuthKey    = result.AuthKey;
                _session.TimeOffset = result.TimeOffset;
            }

            _sender = new MtProtoSender(_transport, _session);

            if (!reconnect)
            {
                var request = new InitConnectionRequest(_apiId);

                await _sender.Send(request);

                await _sender.Recieve(request);

                dcOptions            = request.ConfigConstructor.dc_options;
                _session.CurrentDcId = request.ConfigConstructor.this_dc;
            }

            return(true);
        }
Example #2
0
        public async Task <bool> Connect()
        {
            if (_session.AuthKey == null)
            {
                var result = await Authenticator.DoAuthentication(_transport);

                _session.AuthKey    = result.AuthKey;
                _session.TimeOffset = result.TimeOffset;
            }

            _sender = new MtProtoSender(_transport, _session);

            var request = new InitConnectionRequest(Values.ApiID);

            await _sender.Send(request);

            await _sender.Recieve(request);

            return(IsUserAuthorized());
        }