private void OnPubSubTokenReceived(PubSubToken obj) { lock (channelMutex) { if (this.joinedChannels.Contains(obj.UserName)) { pubSubManager.Connect(obj.UserName); } } }
public TwitchPubSubClient(ILogger logger, PubSubToken token) { this.logger = logger; this.token = token; this.client = new TwitchPubSub(); client.OnPubSubServiceConnected += Client_OnPubSubServiceConnected; client.OnListenResponse += Client_OnListenResponse; client.OnChannelPointsRewardRedeemed += Client_OnChannelPointsRewardRedeemed; try { client.ListenToChannelPoints(token.UserId); client.Connect(); } catch (Exception exc) { logger.LogError("Unable to connect to pubsub for " + token.UserName + ": " + exc); } }
public PubSubToken AddOrUpdate(string userId, string userName, string token) { try { var existing = GetById(userId); if (existing == null) { existing = new PubSubToken(); existing.UserId = userId; lock (mutex) { tokens.Add(existing); } } existing.Token = token; existing.UserName = userName; return(existing); } finally { SaveTokens(); } }