У меня есть следующий код:
var access_token_key, access_token_secret, consumer_key, consumer_secret, get_twitter, listen, twitter;
twitter = require('ntwitter');
consumer_key = 'bogus';
consumer_secret = 'fake';
// consumer
access_token_key = 'falsey';
access_token_secret = 'unreal';
get_twitter = function(key, secret) {
return new twitter({
consumer_key: consumer_key,
consumer_secret: consumer_secret,
access_token_key: key,
access_token_secret: secret
});
};
listen = function(feed) {
var api = get_twitter(access_token_key, access_token_secret);
return api.stream('statuses/filter', {track: feed.track}, function(stream) {
console.log('setting up stream for %s', feed.track);
stream.on('data', function(data) {
console.log('data for %s', feed.track);
console.log('\t' + data.user.screen_name + ': ' + data.text);
});
stream.on('end', function(response) {
console.log('ending stream for %s', feed.track);
});
stream.on('destroy', function(response) {
console.log('destroying stream for %s', feed.track);
});
});
};
module.exports.listen = listen;
Когда я звоню listen({track: 'superbowl'})
, это работает.Ура!Это делает все, что должно сделать небольшое приложение!Я получаю это в консоли:
setting up stream for superbowl
data for superbowl
user: tweet
Но после этого я звоню listen({track: 'humble bundle'})
, он устанавливает новый поток, но это происходит:
setting up stream for humble bundle
ending stream for superbowl
destroying stream for superbowl
data for humble bundle
user: tweet
Я что-то делаюнеправильно здесь?Есть ли какая-то концепция Node или Twitter, которую я еще не полностью осознал?