nodejs twitter stream need delay between tweets

I have a nodejs sample that is showing tweets I am using socket.io and twitter search stream. Sample is available at http://young-plains-8080.herokuapp.com/ and I have uploaded source at https://github.com/najamsk/twitterstream.

My demo is rendering tweets very fast and stream is not readable to users. I am trying to add delay after receiving a tweet and rendering it on the client. I have tried setTimeout on client end but it only works for first tweet. I am stuck on this delay task without introducing blocking on incoming requests.

A setTimeout won't help you here. If you delay systematically each tweet with the same timeout, as soon as the first tweet arrives, the other will keep poping at the same speed as before...

Here is an idea:

var allTweets = [];
t.stream('statuses/filter', { track: ['gaza'] }, function(stream) {
  stream.on('data', function(tweet) {
    // when a tweet arrives, add it to my global array of tweets plz
    allTweets.push(tweet);      
  });

});

setInterval(function(){
  // every 1000ms take the oldest tweet of the array a send it to me
  var nextTweet = allTweets.shift();
  if (nextTweet) {
     io.sockets.emit("tweet", nextTweet);
  }
}, 1000);