我是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');
}
感谢....
答案 0 :(得分:4)
我认为你的代码中有一个设置就像这样:
twit.stream('statuses/sample', function(stream) {
stream.on('data', function (data) {
console.log(data);
});
});
在回调中保存流变量,例如在stream.on()
之后:
twit.currentTwitStream = stream;
这只是一个建议。也许你有一个中心配置对象,它对于当前流对象来说是一个更好的地方。使用currentTwitStream
,您可以执行此操作:
currentTwitStream.readable
为假。currentTwitStream.destroy()
摧毁了这条小溪。答案 1 :(得分:1)
我也遇到了这个问题。最终对我有用的是stream.stop()
。
.destroy()
,.disconnect()
等提出了各种错误,例如
.destroy
未定义。