//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();
        }
 public WriteLoopMiddleware(IFloodPreventer floodPreventer, IIrcMiddleware <Stream> next) : base(next)
 {
     _floodPreventer = floodPreventer;
 }
Esempio n. 3
0
 protected IrcMiddleware(IIrcMiddleware <TNextParam> next)
 {
     _next = next;
 }
 protected LoopMiddleware(IIrcMiddleware <TInitParam> next) : base(next)
 {
 }
Esempio n. 5
0
 public ConnectMiddleware(IIrcMiddleware <Stream> next) : base(next)
 {
 }
 public ReconnectMiddleware(IIrcMiddleware <TwitchChatConnectionParameters> next) : base(next)
 {
 }
Esempio n. 7
0
 public PingLoopMiddleware(IIrcMiddleware <Stream> next, TimeSpan pingInterval = default) : base(next)
 {
     _pingInterval = pingInterval == default ? TimeSpan.FromSeconds(15) : pingInterval;
 }
 public JoinRateLimiter(IIrcMiddleware <T> next) : base(next)
 {
 }
 public ReadLoopMiddleware(IIrcMiddleware <Stream> next) : base(next)
 {
 }
 public RequestCapMiddleware(IIrcMiddleware <T> next) : base(next)
 {
 }