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);
});
我是nodejs的新手。停止这种情况并重新开始它的最佳方法是什么,但使用一组不同的关键字。
我可以销毁((流,然后创建一个新的流。但是无论如何我可以在不断开连接的情况下更改曲目关键字吗?
我很菜鸟,所以也许这样它不是一个好方法,它浪费了资源,但我仍然不知道如何检查它,所以我会把它放在这里,希望有人告诉我们它是好的还是错误的,最重要的是,为什么?
方法是将 tw.stream 调用放在函数中,并使用要跟踪的单词数组调用该函数。它将开始跟踪新单词,并停止跟踪已删除的单词:
// 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);
}
}
我希望没事,因为这是我找到的唯一方法。