如何调试 NodeJS 中的套接字挂起错误?

2024-03-04

我收到以下错误:

events.js:48
        throw arguments[1]; // Unhandled 'error' event
        ^
Error: socket hang up
    at createHangUpError (http.js:1091:15)
    at Socket.onend (http.js:1154:27)
    at TCP.onread (net.js:363:26)

在节点 v0.6.6 中,我的代码有多个 http.request 和 .get 调用。 请建议如何跟踪导致套接字挂起的原因以及它是在哪个请求/调用上。 谢谢


快速而肮脏的开发解决方案:

Use longjohn https://github.com/mattinsler/longjohn,您将获得包含异步操作的长堆栈跟踪。

干净且正确的解决方案: 从技术上讲,在节点中,每当你发出一个'error'事件并且没有人听它,它会抛出 http://nodejs.org/api/all.html#events_class-eventemitter。为了使其不抛出,请在其上放置一个侦听器并自己处理它。这样您就可以记录错误并提供更多信息。

要为一组调用设置一个侦听器,您可以使用domains http://nodejs.org/api/all.html#all_domain并在运行时捕获其他错误。确保与 http(Server/Client) 相关的每个异步操作位于不同的位置domain http://nodejs.org/api/all.html#all_domain与代码的其他部分相比,域将自动侦听error事件并将其传播到它自己的处理程序。因此,您只需监听该处理程序并获取错误数据。您还可以免费获得更多信息。 http://nodejs.org/api/all.html#all_additions_to_error_objects(域名已弃用)。

As Mike建议你也可以设置NODE_DEBUG=net or use strace https://stackoverflow.com/q/174942/774086。它们都向您提供节点内部正在做什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何调试 NodeJS 中的套接字挂起错误? 的相关文章

随机推荐

  • 将 json 字符串反序列化为对象 - Silverlight

    今天下午我花了很长时间尝试在字符串中实现 JSON 的反序列化 一开始我使用的是数据契约Json序列化器因为我的环境是 Silverlight 但它似乎不支持使用开箱即用的字典 在许多其他问题中提出 作为替代方案 我决定暂时使用 JSON
  • openpyxl python 中自定义系列标题

    我正在尝试修改现有的 xlsx 表并使用 python 中的 openpyxl 模块向其中添加图形 但是在创建折线图时 系列标题显示为系列 1 系列 2 系列 3 系列 4 因为我需要将系列标题重命名为 A B C D 注意 该名称不是从任
  • ListView findViewById 返回 null

    我没有使用 ListActivity 因为我想扩展 FragmentActivity 相反 我尝试使用 ListView lv ListView findViewById R id mainListView 不幸的是 lv 为空 在我的 x
  • 如果是 JPG 图像,QLabel() 将不会加载像素图

    我想有一个QLabel 显示一个pixmap文件中的 JPG 图像 不能位于资源文件中 因为它是从网络下载的 但我在加载它时遇到问题 代码相当简单 label QLabel label setPixmap QPixmap image jpg
  • Promise 链与 Promise.all

    我的任务是使用量角器输入通知日期 我需要在输入之前清除内容 所以我想出了这个代码 this Then I should enter Notification Date gt const d new Date return orderChec
  • 如何更新 Visual Studio 的“用于验证的级联样式表版本”

    在我的 Visual Studio 2010 中 用于验证的级联样式表版本 针对的是 CSS 版本 2 1 如何更新 VS 以定位 CSS 版本 3 我刚刚下载并安装了 Mojtaba kaviani 的 CSS 3 智能感知架构 http
  • Opencv 矩阵乘法

    我需要将矩阵及其转置相乘 但出现以下错误 OpenCV Error Assertion failed type B type type CV 32FC1 type CV 64FC1 type CV 32FC2 type CV 64FC2 i
  • Flutter:任务“:app:compileDebugKotlin”执行失败

    我尝试运行默认的颤动应用程序颤动创建在我的 Android 设备上 但它引发了一个错误 有人可以帮忙吗 在调试模式下在 SM G610F 上启动 lib main dart 运行 Gradle 任务 assembleDebug 失败 构建失
  • 创建 backref 时 SQLAlchemy 关系引发参数错误

    我正在尝试建立一对多的关系 以便每个咖啡馆都可以有很多评论 然而 SQLAlchemy 提出了一个ArgumentError定义关系时 我该如何修复这个错误 class Review db Model id db Column db Int
  • 我可以使用 HTML 输入类型“日期”仅收集年份吗?

    我有一个字段需要从用户那里收集年份 即具有年份分辨率的日期 为了便于存储 我更愿意存储实际的日期值而不是数字 我想使用现代浏览器支持的日期输入 UI 或webshims https afarkas github io webshim dem
  • 删除分组 UITableView 中的角阴影/偏移

    当 UITableViewStyleGrouped 类型的 UITableView 的背景视图是 iPad 上的非默认颜色或图案图像时 圆角会有一条丑陋的额外线条 有点像斜角效果或投影 有谁知道有什么方法可以消除表格底部的多余线条吗 iPa
  • 在新窗口中打开 html 链接,没有浏览器工具栏

    我知道我可以使用 target blank 在新窗口中打开 html 链接 但是 如何隐藏 禁用所有浏览器工具栏 你应该使用window open url to open window name toolbar no
  • 最好的java jabber客户端库[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您对 java jabber 库有哪些好的 坏的经历 我有过非常好的经验Smack http www igniterealtime org pr
  • Ruby 是如何实现完全面向对象的?

    所以 我很好奇 Ruby 为什么是一种完全面向对象的语言 我偶然发现了一个我不太清楚的问题 如果我定义一个函数如下 def foo text print text end 我在类之外定义了该函数 那么该函数如何成为对象 我意识到我可以打电话
  • 了解基本的 SQL 查询

    我有一个查询 例如 SELECT tran number FROM table a WHERE customer id IN SELECT customer id FROM table b WHERE customer key 89564
  • 将对象添加到现有对象数组 - JavaScript

    我创建了一个包含 2 个对象的数组 我希望编写一个 添加 函数来动态地将更多人添加到该数组中 您能解释一下为什么下面的 add 函数没有成功地将对象添加到 contacts 数组中吗 var bob firstName Bob lastNa
  • 如何使用 Meteor 执行常见的 FB 操作?

    使用 Meteor 执行常见 Facebook 操作需要执行哪些步骤accounts facebook包裹 我正在尝试获取好友列表 在墙上发布并最终执行其他操作 但我不确定如何继续 更新 对meteor 0 6 0略有修改 您需要使用 AP
  • 来自 Pandas 混淆矩阵的散景热图

    熊猫怎么能DataFrame显示为散景热图 https docs bokeh org en latest docs user guide categorical html heat maps https docs bokeh org en
  • 具有自定义视图和图像视图的 MKAnnotationView

    在我的地图应用程序中 我想显示一个带有图像的彩色背景圆圈 而不是显示图钉 背景圆圈的颜色 下图中的绿色阴影 是动态的 它将如下图所示 我创建了 TCircleView 它在 drawRect 中绘制颜色为了显示类似的注释 我创建了 TCir
  • 如何调试 NodeJS 中的套接字挂起错误?

    我收到以下错误 events js 48 throw arguments 1 Unhandled error event Error socket hang up at createHangUpError http js 1091 15 a