我有一个 JavaScript 代理服务器,在使用一段时间后经常挂起。这是代理代码:
var express = require(["express"], function(){}),
http = require(["http"], function(){}),
port = (process.env.PORT || 8001),
server = module.exports = express(),
httpProxy = require(['http-proxy'], function(){});
var proxy = httpProxy.createProxyServer();
// SERVER CONFIGURATION
// ====================
server.configure(function() {
server.use(function(req, res, next) {
if (req.url.indexOf('/any/thing') === 0) {
//console.log(res);
proxy.web(req, res, {target: 'http://any.thing.com'});
} else {
next();
}
});
server.use('/anything', express["static"](__dirname + "/../public"));
server.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
server.use(express.bodyParser());
server.use(server.router);
});
// Start Node.js Server
http.createServer(server).listen(port);
我正在尝试使用 Nightwatch.js 进行一些测试。测试进行到一定程度后,服务器崩溃了。在某些测试中,这一点总是同时达到,而在其他测试中,这取决于服务器何时崩溃以及是否完全崩溃。 这是错误消息:
C:...\node_modules\http-proxy\lib\http-proxy\index.js:119
throw err;
^
错误:套接字挂起
at createHangUpError (_http_client.js:215:15)
at Socket.socketCloseListener (_http_client.js:247:23)
at Socket.emit (events.js:129:20)
at TCP.close (net.js:485:12)
停止 Express 服务器
block 引用>这可能是什么原因?我在谷歌上没能找到答案。
最佳答案
向 http 代理并行发送请求时会引发该错误。 可以通过安装不同版本的 http-proxy 来防止该错误。 对我来说,错误发生在 http-proxy 版本 1.6.2 中。 我通过安装版本 1.0.0 解决了这个问题:
npm uninstall http-proxy
然后
npm install http-proxy@1.0.0
关于javascript - http-proxy 总是挂掉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31262354/