Node.js 使用不同的跟踪关键字重新启动nodejs-ntwitter-twitter流

Node.js 使用不同的跟踪关键字重新启动nodejs-ntwitter-twitter流,node.js,twitter,stream,Node.js,Twitter,Stream,我对nodejs是新手。什么是最好的方法来停止这一点,并重新开始,但一个不同的关键字集 我可以销毁()流,然后创建一个新的流。但是,我是否可以在不断开连接的情况下更改曲目关键字?我很笨,所以可能这样做不好,浪费资源,但我仍然不知道如何检查,所以我将把它放在这里,希望有技术娴熟的人告诉我们它是正确的还是错误的,最重要的是,为什么 方法是将tw.stream调用放在一个函数中,并使用要跟踪的单词数组调用该函数。它将开始跟踪新单词,并停止跟踪删除的单词: var twitter = require('

我对nodejs是新手。什么是最好的方法来停止这一点,并重新开始,但一个不同的关键字集


我可以销毁()流,然后创建一个新的流。但是,我是否可以在不断开连接的情况下更改曲目关键字?

我很笨,所以可能这样做不好,浪费资源,但我仍然不知道如何检查,所以我将把它放在这里,希望有技术娴熟的人告诉我们它是正确的还是错误的,最重要的是,为什么

方法是将tw.stream调用放在一个函数中,并使用要跟踪的单词数组调用该函数。它将开始跟踪新单词,并停止跟踪删除的单词:

var twitter = require('ntwitter');
// Configure twitter

var keywords = ['hello', 'world'];

twit.stream('statuses/filter', {'track':keywords.join(',')}, function(stream) {
  stream.on('data', function (data) {
    console.log(data);
  });

  stream.on('end', function (response) {
    console.log("\n====================================================");
    console.log("DESTROYING");
    console.log("====================================================\n");
  });

  setTimeout(function(){
    stream.destroy();
  }, 60000);
});

我希望没问题,因为这是我找到的唯一方法。

您似乎没有破坏当前正在运行的流。当你启动一个新的,当有一个运行时,它会关闭旧的吗?正如我说的,我仍然不知道如何调试它,所以我不能确认它。看看它是怎么工作的,看起来它做得很好。如果你在追踪可口可乐和百事可乐,并且你用芬达和卡斯打电话给TrackWords,它就会停止追踪可口可乐和百事可乐。它看起来不错,但可能是在浪费内存或其他什么。twitter只允许每个用户帐户有一个流,所以当你启动一个新流而不破坏前一个流时,它将自动关闭。但最好还是自己摧毁它。你能详细说明我如何摧毁阿比德夫河吗?
// Array to store the tracked words
var TwitWords = [];

// Tracker function
function TrackWords(array){
  tw.stream('statuses/filter',{track:array},function(stream){
    stream.on('data',function(data){
      console.log(data.text);
    });
  });
}

// Add word
function AddTwitWord(word){
  if(TwitWords.indexOf(word)==-1){
    TwitWords.push(word);
    TrackWords(TwitWords);
  }
}

// Remove word
function RemoveTwitWord(word){
  if(TwitWords.indexOf(word)!=-1){
    TwitWords.splice(TwitWords.indexOf(word),1);
    TrackWords(TwitWords);
  }
}