Esempio n. 1
0
        internal Connection(TcpClient client, ProtocolConfiguration configuration,
                            IInternalServiceManager <IConnection> services = null, ISslStreamFactory sslFactory = null,
                            IConnectionData data = null, List <InternalPayloadDispatchHandler> dispatcher       = null) : this(
                configuration.PayloadEncoder.Clone(), configuration.PayloadDecoder.Clone())
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }
            if (client == null || !client.Connected)
            {
                throw new ArgumentException(nameof(client));
            }

            Client = client;

            SslMode = configuration.SslMode;
            CustomOutcomingMessageQueue = configuration.CustomOutcomingMessageQueue;
            CustomIncomingMessageQueue  = configuration.CustomIncomingMessageQueue;
            _services       = services; // ?? BasicServiceManager<IConnection>.Empty;
            _sslFactory     = sslFactory;
            Data            = data;
            DispatchPayload = dispatcher ?? new List <InternalPayloadDispatchHandler>(0);
            _readAsync      = configuration.ReadAsync;
        }
 public IConnectionBuilder UseClientSsl(string targetCommonName,
                                        X509Certificate2 certificate, SslProtocols protocols)
 {
     if (_config == null)
     {
         _config = new ProtocolConfiguration();
     }
     UseSsl(_config.GetClientSslFactory(targetCommonName, certificate, protocols));
     return(this);
 }
 public ConnectionBuilder(ProtocolConfiguration config = null)
 {
     _config     = config ?? new ProtocolConfiguration();
     _dispatcher = new List <Connection.InternalPayloadDispatchHandler>(0);
 }