node.js - Node 套接字在 Twitter 流 filter.json 上挂起

标签 node.js httpwebrequest

我有以下简单的 Coffeescript 代码来访问 Twitter Stream API

http = require 'http'

options =
    port: 443
    host: 'stream.twitter.com'
    path: '/1.1/statuses/filter.json?track=keyword'
    headers:
        'Authorization': 'Basic ' + new Buffer('[user]:[pass]').toString 'base64'
        'Host': 'stream.twitter.com'
    method: 'GET'

callback = (res) ->
    console.log res
    res.on 'data', (chunk) ->
        console.log chunk

    res.on 'end', -> console.log 'end'

    # res.on 'close', -> res.emit 'end'

http.request options, callback

为什么我会得到

throw arguments[1]; // Unhandled 'error' event

Error: socket hang up

最佳答案

错误正在触发您的响应 (res) 上的 error 事件,而您并未监听该事件。默认情况下,Node.js EventEmitters 中的 error 事件如果没有监听,将会抛出。您需要添加

res.on 'error', # whatever

并处理错误。

请注意,这只会阻止抛出错误;它不会阻止错误的发生。

关于node.js - Node 套接字在 Twitter 流 filter.json 上挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434118/

相关文章:

node.js - 从另一个 Docker 容器运行 Zalenium 的 Selenium 命令

node.js - Webpack --watch 和启动 nodemon?

带有进度跟踪的 C# HttpWebRequest 表单发布(用于上传可能较大的文件)

c# - HttpWebRequest:请求已中止:无法创建 SSL/TLS 安全通道

javascript - 从 Node.js 数组中单个对象的单个属性获取值?

java - okhttp大文件上传失败

javascript - 从数据数组发送恒定大小的批量请求 - React、Axios

performance - Chrome Web 请求卡住了 8 秒

javascript - 允许在 Puppeteer 的所有站点上运行 Flash

c# - HTTPWebResponse 不返回任何内容