public AuthKeyNegotiator( [NotNull] IClientTransportConfig clientTransportConfig, [NotNull] IMTProtoClientBuilder mtProtoBuilder, [NotNull] TLRig tlRig, [NotNull] INonceGenerator nonceGenerator, [NotNull] IHashServices hashServices, [NotNull] IEncryptionServices encryptionServices, [NotNull] IKeyChain keyChain) { Argument.IsNotNull(() => clientTransportConfig); Argument.IsNotNull(() => mtProtoBuilder); Argument.IsNotNull(() => tlRig); Argument.IsNotNull(() => nonceGenerator); Argument.IsNotNull(() => hashServices); Argument.IsNotNull(() => encryptionServices); Argument.IsNotNull(() => keyChain); _clientTransportConfig = clientTransportConfig; _mtProtoBuilder = mtProtoBuilder; _tlRig = tlRig; _nonceGenerator = nonceGenerator; _hashServices = hashServices; _encryptionServices = encryptionServices; _keyChain = keyChain; }
public MTProtoClientConnection( [NotNull] IClientTransportConfig clientTransportConfig, [NotNull] IClientTransportFactory clientTransportFactory, [NotNull] TLRig tlRig, [NotNull] IMessageIdGenerator messageIdGenerator, [NotNull] IMessageCodec messageCodec) { Argument.IsNotNull(() => clientTransportConfig); Argument.IsNotNull(() => clientTransportFactory); Argument.IsNotNull(() => tlRig); Argument.IsNotNull(() => messageIdGenerator); Argument.IsNotNull(() => messageCodec); _tlRig = tlRig; _messageIdGenerator = messageIdGenerator; _messageCodec = messageCodec; DefaultRpcTimeout = Defaults.RpcTimeout; DefaultConnectTimeout = Defaults.ConnectTimeout; _methods = new MTProtoAsyncMethods(this); InitResponseDispatcher(_responseDispatcher); // Init transport. _clientTransport = clientTransportFactory.CreateTransport(clientTransportConfig); // Connector in/out. _clientTransport.ObserveOn(DefaultScheduler.Instance).Do(bytes => LogMessageInOut(bytes, "IN")).Subscribe(ProcessIncomingMessageBytes); }
IAuthKeyNegotiator IMTProtoClientBuilder.BuildAuthKeyNegotiator(IClientTransportConfig clientTransportConfig) { return new AuthKeyNegotiator(clientTransportConfig, this, _tlRig, _nonceGenerator, _hashServices, _encryptionServices, _keyChain); }
public IClientTransport CreateTransport(IClientTransportConfig clientTransportConfig) { // TCP. var tcpTransportConfig = clientTransportConfig as TcpClientTransportConfig; if (tcpTransportConfig != null) { return new TcpClientTransport(tcpTransportConfig); } throw new NotSupportedException(string.Format("Transport type '{0}' is not supported.", clientTransportConfig.TransportName)); }
public IClientTransport CreateTransport(IClientTransportConfig clientTransportConfig) { // TCP. var tcpTransportConfig = clientTransportConfig as TcpClientTransportConfig; if (tcpTransportConfig != null) { return(new TcpClientTransport(tcpTransportConfig)); } throw new NotSupportedException(string.Format("Transport type '{0}' is not supported.", clientTransportConfig.TransportName)); }
public MTProtoClientConnection( [NotNull] IClientTransportConfig clientTransportConfig, [NotNull] IClientTransportFactory clientTransportFactory, [NotNull] TLRig tlRig, [NotNull] IMessageIdGenerator messageIdGenerator, [NotNull] IMessageCodec messageCodec) { _tlRig = tlRig; _messageIdGenerator = messageIdGenerator; _messageCodec = messageCodec; DefaultRpcTimeout = Defaults.RpcTimeout; DefaultConnectTimeout = Defaults.ConnectTimeout; _methods = new MTProtoAsyncMethods(this); _updatesHandler = new UpdatesHandler(_tlRig); InitResponseDispatcher(_responseDispatcher); // Init transport. _clientTransport = clientTransportFactory.CreateTransport(clientTransportConfig); // Connector in/out. _clientTransport.ObserveOn(DefaultScheduler.Instance).Do(bytes => LogMessageInOut(bytes, "IN")).Subscribe(ProcessIncomingMessageBytes); _clientTransport.RegisterOnDisconnectInternally(() => { Console.WriteLine("Client has been closed internally."); if (_onClosedInternally != null) { _onClosedInternally(this, null); } if (_state == MTProtoConnectionState.Disconnected) { return; } _state = MTProtoConnectionState.Disconnected; if (_connectionCts != null) { _connectionCts.Cancel(); _connectionCts.Dispose(); _connectionCts = null; } }); }
public TelegramClient(IClientTransportConfig transportConfig, ConnectionConfig connectionConfig, TelegramAppInfo appInfo, IMTProtoClientBuilder builder = null) { if (builder == null) { builder = MTProtoClientBuilder.Default; } _transportConfig = transportConfig; _appInfo = appInfo; _connection = builder.BuildConnection(_transportConfig); _connection.Configure(connectionConfig); _methods = new TelegramAsyncMethods(_connection); }
public AuthKeyNegotiator( [NotNull] IClientTransportConfig clientTransportConfig, [NotNull] IMTProtoClientBuilder mtProtoBuilder, [NotNull] TLRig tlRig, [NotNull] INonceGenerator nonceGenerator, [NotNull] IHashServices hashServices, [NotNull] IEncryptionServices encryptionServices, [NotNull] IKeyChain keyChain) { _clientTransportConfig = clientTransportConfig; _mtProtoBuilder = mtProtoBuilder; _tlRig = tlRig; _nonceGenerator = nonceGenerator; _hashServices = hashServices; _encryptionServices = encryptionServices; _keyChain = keyChain; }
IMTProtoClientConnection IMTProtoClientBuilder.BuildConnection(IClientTransportConfig clientTransportConfig) { return new MTProtoClientConnection(clientTransportConfig, _clientTransportFactory, _tlRig, _messageIdGenerator, _messageCodec); }
public static IMTProtoClientConnection BuildConnection([NotNull] IClientTransportConfig clientTransportConfig) { return Default.BuildConnection(clientTransportConfig); }
public static IAuthKeyNegotiator BuildAuthKeyNegotiator([NotNull] IClientTransportConfig clientTransportConfig) { return Default.BuildAuthKeyNegotiator(clientTransportConfig); }