1

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

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

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

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

调试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)

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

(我使用的是节点 v0.10.4,在之前的版本 v0.9.x 中发现了问题)

4

1 回答 1

0

这是来自 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/

于 2013-04-25T18:23:28.490 回答