nodejs twitter stream需要推文之间的延迟

时间:2014-07-29 07:26:21

标签: node.js

我有一个显示推文的nodejs示例我正在使用socket.io和twitter搜索流。示例位于http://young-plains-8080.herokuapp.com/,我已在https://github.com/najamsk/twitterstream上传了来源。

我的演示非常快速地呈现推文,并且用户无法读取流。我试图在收到推文并在客户端上呈现它后添加延迟。我在客户端尝试了setTimeout,但它只适用于第一条推文。我没有对传入的请求进行阻塞,而是坚持这个延迟任务。

1 个答案:

答案 0 :(得分:1)

setTimeout在这里不会帮到你。如果你系统地推迟每条推文的相同超时,一旦第一条推文到达,另一条推文将以与以前相同的速度继续弹出...

这是一个想法:

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);