gpt4 book ai didi

node.js - 简单 NodeJS HTTP 代理上的 net.js 上的无限循环

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:54 26 4
gpt4 key购买 nike

我正在使用 NodeJS 制作一个手工制作的 HTTP 代理,但是当每秒有很多请求时,net.js 在读取空连接结束时会进入无限循环。 (它随机发生在 40 req/s 左右)。

我分离了导致错误的代码,创建了一个简单的 HTTP 代理并引发了问题:

代码:https://gist.github.com/Ifnot/5336823

我使用命令“NODE_DEBUG=net node main.js”将 net.js 置于 Debug模式,即使所有连接似乎都已关闭,程序也会无限期地输出:

调试:https://gist.github.com/Ifnot/5274181

注意:当循环开始时,我可以看到此错误:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Socket.EventEmitter.addListener (events.js:160:15)
at Socket.Readable.on (_stream_readable.js:653:33)
at Socket.EventEmitter.once (events.js:179:8)
at TCP.onread (net.js:527:26)

我做错了什么吗?有人知道会发生什么吗?为什么会出现这个问题?

(我使用的是node v0.10.4,问题在之前的版本v0.9.x中出现过)

最佳答案

这是 Nodejs 核心的一个错误。我们在这里讨论:

https://github.com/joyent/node/issues/5108

Bug出现在版本0.8.23之后,所以解决方案是下载并编译node版本0.8.23:

http://blog.nodejs.org/2013/04/08/node-v0-8-23-legacy/

关于node.js - 简单 NodeJS HTTP 代理上的 net.js 上的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com