Ejemplo n.º 1
0
        public TwitterSearchStream(TwitterProtocolManager protocolManager,
                                   GroupChatModel chat, string keyword,
                                   OAuthTokens tokens, WebProxy proxy)
        {
            if (protocolManager == null) {
                throw new ArgumentNullException("protocolManager");
            }
            if (chat == null) {
                throw new ArgumentNullException("chat");
            }
            if (keyword == null) {
                throw new ArgumentNullException("keyword");
            }
            if (tokens == null) {
                throw new ArgumentNullException("tokens");
            }

            ProtocolManager = protocolManager;
            Session = protocolManager.Session;
            Chat = chat;

            var options = new StreamOptions();
            options.Track.Add(keyword);

            Stream = new TwitterStream(tokens, null, options);
            Stream.Proxy = proxy;
            Stream.StartPublicStream(OnStreamStopped, OnStatusCreated, OnStatusDeleted, OnEvent);

            MessageRateLimiter = new RateLimiter(5, TimeSpan.FromSeconds(5));
        }
Ejemplo n.º 2
0
        public void AboveLimit()
        {
            var limiter = new RateLimiter(10, TimeSpan.FromSeconds(10));

            for (int i = 0; i < 100; i++)
            {
                if (limiter.IsRateLimited)
                {
                    Assert.AreEqual(10, i);
                    break;
                }
                limiter++;
            }
        }
Ejemplo n.º 3
0
        public void BelowLimit()
        {
            var limiter = new RateLimiter(10, TimeSpan.FromMilliseconds(10));

            for (int i = 0; i < 100; i++)
            {
                if (limiter.IsRateLimited)
                {
                    break;
                }
                limiter++;
            }
            Thread.Sleep(10);
            Assert.IsFalse(limiter.IsRateLimited);
        }