public SuperSocketSocketClient(ILogger <SuperSocketSocketClient> logger, IFluentSocketApplication app, ISocketSessionBuilder socketSessionBuilder, ClientSetting setting) { _logger = logger; _app = app; _socketSessionBuilder = socketSessionBuilder; _setting = setting; if (!_setting.ExtraSettings.Any()) { _setting.ExtraSettings.Add(new SuperSocketClientSetting()); } _extraSetting = (SuperSocketClientSetting)_setting.ExtraSettings.FirstOrDefault(); _cts = new CancellationTokenSource(); _semaphoreSlim = new SemaphoreSlim(1); _manualResetEventSlim = new ManualResetEventSlim(true); _reqPushChannel = SystemChannel.CreateBounded <PushReqPacket>(_setting.PushReqCapacity); _pushMessageHandlerDict = new ConcurrentDictionary <short, IPushMessageHandler>(); _responseFutureDict = new ConcurrentDictionary <int, ResponseFuture>(); }
public DotNettySocketServer(ILogger <DotNettySocketServer> logger, IFluentSocketApplication app, ISocketSessionBuilder socketSessionBuilder, ServerSetting setting) { _logger = logger; _app = app; _setting = setting; if (!_setting.ExtraSettings.Any()) { _setting.ExtraSettings.Add(new DotNettyServerSetting()); } _extraSetting = (DotNettyServerSetting)_setting.ExtraSettings.FirstOrDefault(); _socketSessionBuilder = socketSessionBuilder; _sessionFactory = app.ServiceProvider.GetService <ISocketSessionFactory>(); _cts = new CancellationTokenSource(); _messageReqChannel = Channel.CreateBounded <MessageReqPacketWrapper>(_setting.MessageReqCapacity); _requestMessageHandlerDict = new ConcurrentDictionary <short, IRequestMessageHandler>(); _services = new ConcurrentDictionary <Type, ISocketService>(); _pushFutureDict = new ConcurrentDictionary <int, PushFuture>(); _channelDict = new ConcurrentDictionary <string, IChannel>(); }