public Task <bool> InitializeAsync(ITwitchChatStreamNotifications prev, T param)
 {
     _prev            = prev;
     InitializeCount += 1;
     _initializeWait.Set();
     return(Task.FromResult(true));
 }
        //public bool Connected => _client?.Connected ?? false;

        public TwitchChatConnection(ITwitchChatStreamNotifications notificationReceiver,
                                    IFloodPreventer floodPreventer = null,
                                    string connectionName          = null)
        {
            _impl = new ReconnectMiddleware(
                new RequestCapMiddleware <TwitchChatConnectionParameters>(
                    new ConnectMiddleware(
                        new JoinRateLimiter <Stream>(
                            new PingLoopMiddleware(
                                new ReadLoopMiddleware(
                                    new WriteLoopMiddleware(
                                        floodPreventer ?? new TwitchFloodPreventer(),
                                        new TerminalMiddleware <Stream>()
                                        )
                                    )
                                )
                            )
                        )
                    )
                );

            _notificationReceiver = notificationReceiver;
            _connectionName       = connectionName ?? Guid.NewGuid().ToString();
        }
예제 #3
0
 public Task <bool> InitializeAsync(ITwitchChatStreamNotifications prev, TInitParam param)
 {
     _prev = prev;
     return(ReInitializeAsync(param));
 }
 public Task ShutdownAsync()
 {
     _prev = null;
     return(Task.CompletedTask);
 }
 public Task <bool> InitializeAsync(ITwitchChatStreamNotifications prev, T param)
 {
     _prev = prev;
     return(Task.FromResult(true));
 }