Exemplo n.º 1
0
        /// <nodoc/>
        public NonMultiplexingServer([CanBeNull] string name, IServerConfig config, IConnectivityProvider <TClient> connectivityProvider)
        {
            Contract.Requires(config != null);
            Contract.Requires(connectivityProvider != null);

            Name = name ?? GetType().Name;
            m_connectivityProvider = connectivityProvider;

            m_clientListener = new GenericServer <TClient>(
                name: Name,
                config: config,
                listener: connectivityProvider.AcceptClientAsync);
        }
Exemplo n.º 2
0
        /// <nodoc/>
        public MultiplexingServer([CanBeNull] string name, [CanBeNull] ILogger logger, IConnectivityProvider <TClient> connectivityProvider, int maxConcurrentClients, int maxConcurrentRequestsPerClient)
        {
            Contract.Requires(connectivityProvider != null);
            Contract.Requires(maxConcurrentClients > 0);
            Contract.Requires(maxConcurrentRequestsPerClient > 0);

            Name   = name ?? GetType().Name;
            Logger = logger ?? VoidLogger.Instance;

            m_connectivityProvider = connectivityProvider;

            m_clientHandlingConfig = new ServerConfig {
                Logger = Logger, MaxConcurrentClients = maxConcurrentClients
            };
            m_requestHandlingConfig = new ServerConfig {
                Logger = Logger, MaxConcurrentClients = maxConcurrentRequestsPerClient
            };

            m_clientListener = new GenericServer <TClient>(
                name: Name + ".ClientHandler",
                config: m_clientHandlingConfig,
                listener: (token) => connectivityProvider.AcceptClientAsync(token));
        }