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 TcpServer(IPEndPoint endpoint, IConnectionBuilder connectionBuilder, IInternalServiceManager <IServer> services = null) { Connections = new ConcurrentDictionary <long, IConnection>(); Endpoint = endpoint; ConnectionBuilder = connectionBuilder.UseDispatcher(Con_DispatchPayload); _timer = new Timer(Timer_Tick, null, 0, System.Threading.Timeout.Infinite); _services = services ?? ServicesManager <IServer> .Empty; DispatchPayload = new List <Connection.InternalPayloadDispatchHandler>(0); }