title: Multiple calls to Twitter streaming API in Node.js using ntwitter
body: <p>I have the following code:</p>
  
  <pre><code>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;
  </code></pre>
  
  <p>When I call <code>listen({track: 'superbowl'})</code> it works. Hurray! It does everything a little app should! I get this in the console:</p>
  
  <pre><code>setting up stream for superbowl
  data for superbowl
      user: tweet
  </code></pre>
  
  <p>But after that, I call <code>listen({track: 'humble bundle'})</code>, it sets up the new stream, but this happens:</p>
  
  <pre><code>setting up stream for humble bundle
  ending stream for superbowl
  destroying stream for superbowl
  data for humble bundle
       user: tweet
  </code></pre>
  
  <p>Am I doing something incorrectly here? Is there some concept of Node or of Twitter that I have not yet grasped fully?</p>