如何结束对npm oauth.get请求到TwitterstreamAPI的stream式响应?

如何停止对此获取请求的stream式响应? 起初,我使用npm twitter,在那里你有一个.destroy()方法来杀死stream,但是想更好地理解这个过程(node newb在这里),所以只使用npm oauth,然后是核心节点代码。 我无法在oauth的文档中find与twitter的.destroy()类似的方法。

stream = oauth.get('https://stream.twitter.com/1.1/statuses/filter.json?&track=meaningoflife', process.env.TWITTER_ACCESS_TOKEN_KEY, process.env.TWITTER_ACCESS_TOKEN_SECRET); stream.end(); stream.addListener('response', function(twitResponse){ twitResponse.addListener('data', function(data){ //consume stream here }); }); 

这工作正常,stream如预期地进来。 closures它是唯一的问题。 非常感谢!

对于任何有类似问题的人来说,简单的答案是:像正常的Node https / http get请求那样对待stream,使用.abort()来终止与Twitter的连接。 好像:

  stream.abort(); 

为了上下文/澄清:我有一个前端ajax请求触发断开连接。 确保你隔离中止,如果你使用它,当你知道用户(或者你,作为pipe理员,或者你正在pipe理你的stream)想要从Twitter断开连接。 (这可能是很明显的,我想明确地说出来,如果不是这样的话 – 不希望你认为中止应该在OP代码块之后立即结束。)

关于公共streamAPI 1.1断开连接的一般话题,请注意:Twitter强调他们不需要频繁的断开/重新连接(见本页底部) 。 我问了我最初打算为每个用户制作一个定制stream的OP问题,所以如果你正在看这个,那么你有可能考虑同样的事情。 不幸的是,Twitter的公共stream程并不支持这一点。 Womp womp。