javascript - How to stop and restart a twitter stream with ntwitter - Stack Overflow

I'm new to node.js so please excuse the simple question. I'm writing something standard: a re

I'm new to node.js so please excuse the simple question. I'm writing something standard: a rest API that goes to twitter using ntwitter and saves stuff on mysql. What I'm having trouble is disconnecting and connecting back to twitter using ntwitter.

I checked a somewhat similar question to mine but that one is still unanswered: Restarting nodejs ntwitter twitter stream with different track keywords

The question is two fold:

1) How to check if the twit.stream is alive
2) How to kill it/manually disconnect from twitter

I'm using destroy but that does not seem to work. The relevant part of the code is:

if (values[0] == 'newStatusAdded') {
  console.log('Need to stop twitter listener');
  //check if twitter stream is running
  if (twit.stream) {
    twit.stream.destroy;
    debugger;
    console.log('Stopped twitter listener');
  }

thanks....

I'm new to node.js so please excuse the simple question. I'm writing something standard: a rest API that goes to twitter using ntwitter and saves stuff on mysql. What I'm having trouble is disconnecting and connecting back to twitter using ntwitter.

I checked a somewhat similar question to mine but that one is still unanswered: Restarting nodejs ntwitter twitter stream with different track keywords

The question is two fold:

1) How to check if the twit.stream is alive
2) How to kill it/manually disconnect from twitter

I'm using destroy but that does not seem to work. The relevant part of the code is:

if (values[0] == 'newStatusAdded') {
  console.log('Need to stop twitter listener');
  //check if twitter stream is running
  if (twit.stream) {
    twit.stream.destroy;
    debugger;
    console.log('Stopped twitter listener');
  }

thanks....

Share Improve this question edited May 23, 2017 at 10:29 CommunityBot 11 silver badge asked Sep 28, 2012 at 5:32 icaroicaro 431 silver badge6 bronze badges 0
Add a ment  | 

2 Answers 2

Reset to default 5

I think you have a setup somewhere in your code like this:

twit.stream('statuses/sample', function(stream) {
  stream.on('data', function (data) {
    console.log(data);
  });
});

Save the stream variable from within the callback, for example after stream.on():

  twit.currentTwitStream = stream;

This is only a suggestion. Perhaps you have a central configuration object which would be a better place for the current stream object. With currentTwitStream you can do this:

  1. currentTwitStream.readable is false after an error or close.
  2. currentTwitStream.destroy() destroys the stream.

I was facing this problem too. What eventually worked for me was stream.stop().

.destroy(), .disconnect() etc brought up a variety of errors such as

.destroy is not defined.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742332422a4423985.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信