如何使用ntwitter停止并重新启动twitter流

时间:2012-09-28 05:32:36

标签: javascript node.js twitter ntwitter

我是node.js的新手,请原谅这个简单的问题。我正在写一些标准的东西:一个使用ntwitter进入twitter的休息API并在mysql上保存东西。我遇到的问题是使用ntwitter断开连接并连接回Twitter。

我检查了一个与我有点类似的问题,但是仍然没有答案:Restarting nodejs ntwitter twitter stream with different track keywords

问题有两个:

1)如何检查twit.stream是否还活着 2)如何杀死它/手动断开与推特的连接

我正在使用destroy,但这似乎不起作用。代码的相关部分是:

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');
  }

感谢....

2 个答案:

答案 0 :(得分:4)

我认为你的代码中有一个设置就像这样:

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

在回调中保存流变量,例如在stream.on()之后:

  twit.currentTwitStream = stream;

这只是一个建议。也许你有一个中心配置对象,它对于当前流对象来说是一个更好的地方。使用currentTwitStream,您可以执行此操作:

    错误或关闭后,
  1. currentTwitStream.readable为假。
  2. currentTwitStream.destroy()摧毁了这条小溪。

答案 1 :(得分:1)

我也遇到了这个问题。最终对我有用的是stream.stop()

.destroy().disconnect()等提出了各种错误,例如

  

.destroy未定义。