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); }
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()); }