如何使用 ntwitter 停止和重新启动 Twitter 流

ica*_*aro 4 javascript twitter node.js ntwitter

我是 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');
  }
Run Code Online (Sandbox Code Playgroud)

谢谢....

nal*_*ply 5

我认为您的代码中某处有这样的设置:

twit.stream('statuses/sample', function(stream) {
  stream.on('data', function (data) {
    console.log(data);
  });
});
Run Code Online (Sandbox Code Playgroud)

从回调中保存流变量,例如 after stream.on()

  twit.currentTwitStream = stream;
Run Code Online (Sandbox Code Playgroud)

这只是一个建议。也许您有一个中央配置对象,这对于当前流对象来说是一个更好的位置。与currentTwitStream你可以做到这一点:

  1. currentTwitStream.readable发生错误或关闭后为 false。
  2. currentTwitStream.destroy()破坏流。