止め方についての情報が少なかったのでメモ
対象はnode-twitter
forkがたくさんあるけど、現在はこれが主流みたい?
オリジナルのnode-twitterのリポジトリ見たら書いてました。
twit.stream('user', {track:'nodejs'}, function(stream) {
stream.on('data', function(data) {
console.log(util.inspect(data));
});
// Disconnect stream after five seconds
setTimeout(stream.destroy, 5000);
});
どうやら、コールバックに渡されるstream
に停止するためのメソッド(destroy
)が用意されているみたいです。
コールバック内の変数はアクセスしにくいので、下のように外の変数に入れてあげると良さそうです。(あまり綺麗には見えませんが)
var currentTwitStream = null;
twit.stream('user', {track:'nodejs'}, function(stream) {
stream.on('data', function(data) {
console.log(util.inspect(data));
});
currentTwitStream = stream;
});
function stopStream() {
if(currentTwitStream) {
currentTwitStream.destroy();
currentTwitStream = null;
}
}
stopStream
のように停止用の関数を作ると扱いやすいかもしれません。