//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; }
protected IrcMiddleware(IIrcMiddleware <TNextParam> next) { _next = next; }
protected LoopMiddleware(IIrcMiddleware <TInitParam> next) : base(next) { }
public ConnectMiddleware(IIrcMiddleware <Stream> next) : base(next) { }
public ReconnectMiddleware(IIrcMiddleware <TwitchChatConnectionParameters> next) : base(next) { }
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) { }