2012-09-28 59 views
4

我是新来的node.js,所以请原谅简单的问题。我正在写一些标准:使用ntwitter前往Twitter的其余API,并保存在MySQL上的东西。我遇到的麻烦是使用ntwitter断开连接并重新连接到twitter。如何使用ntwitter停止并重新启动Twitter流

我查了有点类似的问题,以我的,但一个仍未得到解决:Restarting nodejs ntwitter twitter stream with different track keywords

的问题是双重的:

1)如何检查twit.stream是活着
2)如何杀了它/手动从twitter断开

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

感谢....

回答

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()破坏流。
+0

感谢,这个工作就像一个魅力:-) – icaro

+0

我知道这是一个旧帖子,但你能提供一个更清楚的例子,你如何摧毁流。 – FiringSquadWitness

+0

对不起,但没有,因为我没有时间仔细测试。 – nalply

1

我也遇到过这个问题。最终为我工作的是stream.stop()

.destroy().disconnect()等提出了各种各样的错误如

.destroy没有定义。

相关问题