public BasePubsubClient(TwitchPubsubConfig config) : base(config) { _config = config; _pubsub = new PubsubApiClient(config, Logger); _pubsub.LatencyUpdated += OnLatencyInternalAsync; _pubsub.MessageReceived += OnMessageInternalAsync; }
public TwitchPubsubClient(TwitchPubsubConfig config) : base(config, CreateApiClient(config)) { _stateLock = new SemaphoreSlim(1, 1); _pubsubLogger = LogManager.CreateLogger("Pubsub"); ApiClient.SentPubsubMessage += async cmd => await _pubsubLogger.DebugAsync($"Sent {cmd}").ConfigureAwait(false); ApiClient.ReceivedPubsubEvent += ProcessMessageAsync; LatencyUpdated += async(old, val) => await _pubsubLogger.InfoAsync($"Latency = {val} ms").ConfigureAwait(false); }
public PubsubApiClient(TwitchPubsubConfig config, LogManager log) { Requests = new ConcurrentDictionary <string, PubsubRequest>(); Logger = log; if (config.PubsubProvider == null) { _client = new WebSocketClient(Logger, config.PubsubHost); } else { _client = config.PubsubProvider; } _client.MessageReceived += OnMessageInternalAsync; }
public TwitchPubsubClient(TwitchPubsubConfig config) : base(config) { }
private static TwitchPubsubApiClient CreateApiClient(TwitchPubsubConfig config) => new TwitchPubsubApiClient(config.RestClientProvider, config.WebSocketProvider, config.ClientId, TwitchConfig.UserAgent, config.WebSocketHost);