示例#1
0
 private void OnPubSubTokenReceived(PubSubToken obj)
 {
     lock (channelMutex)
     {
         if (this.joinedChannels.Contains(obj.UserName))
         {
             pubSubManager.Connect(obj.UserName);
         }
     }
 }
示例#2
0
        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();
            }
        }