4

我是 node.js 的新手,所以请原谅这个简单的问题。我正在写一些标准的东西:一个使用 ntwitter 进入 twitter 并将东西保存在 mysql 上的 rest API。我遇到的问题是使用 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

2 回答 2

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()破坏流。
于 2012-09-28T12:07:06.813 回答
2

我也面临这个问题。最终对我有用的是stream.stop().

.destroy().disconnect()带来了各种错误,例如

.destroy没有定义。

于 2016-10-26T03:34:44.180 回答