【问题标题】:Node socket hang up on twitter stream filter.json get节点套接字挂断 Twitter 流 filter.json 获取
【发布时间】:2012-09-15 13:22:29
【问题描述】:

我有以下简单的 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

【问题讨论】:

    标签: node.js httpwebrequest


    【解决方案1】:

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

    res.on 'error', # whatever
    

    并处理错误。

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

    【讨论】:

    • 当你说'处理错误'时,你的意思是仅仅抓住它就足够了,例如像“res.on'error',(err)-> null”之类的东西?因为我已经尝试过了,但仍然得到相同的“套接字挂断”。非常感谢!
    • 好吧,如果套接字挂了,你肯定要处理它(重新连接等),但是有一个函数至少应该让它停止抛出。
    猜你喜欢
    • 1970-01-01
    • 2018-02-24
    • 2015-05-03
    • 2015-10-30
    • 1970-01-01
    • 2013-06-14
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多