11 javascript javascript-events node.js express node-http-proxy
我使用node-http代理模块运行带有反向代理的应用程序,它正在按预期工作,在某些情况下,用户希望立即运行应用程序 ,其状态正在进行中(应用程序尚未启动),它可能需要大约3- 15秒,直到应用程序启动并运行.在这种情况下,用户将从代理中获得错误
proxy.web(req, res, {
target: 'http://' + hostname + ':' + Port
console.log("App------------->Proxy App" );
});
proxy.on('proxyReq', function(proxyReq, req, res, options) {
console.log("App------------->Proxy Request" );
});
proxy.on('error', function (err, req, res) {
console.log("App------------->Proxy Error" );
res.end('Something went wrong');
});
// Listen for the `proxyRes` event on `proxy`.
proxy.on('proxyRes', function (proxyRes, req, res) {
console.log("App------------->Proxy Response" )
var respState = res.statusCode
});
Run Code Online (Sandbox Code Playgroud)
如果出现错误,日志中的堆栈就像
- 代理应用
- 代理请求
- 代理错误
在这种情况下,用户将在浏览器中运行应用程序URL,并首先得到错误,几秒钟后,当他刷新浏览器时,应用程序将运行正常.有什么建议如何解决这个问题?
我考虑构建一些检查proxyRes状态的 API (比如每隔1秒调用一次,看看响应是否为200而不是之前发送错误,如"超时检查")如果在10秒后没有响应可能发送错误,但不知道如何做到这一点,如果它的好方法...任何想法?或者可能通过webSoket但不知道如何做到这一点......
小智 1
尝试在选项中设置 proxyTimeout 。该标志没有记录,但在代码中使用:
https://github.com/nodejitsu/node-http-proxy/blob/master/lib/http-proxy/passes/web-incoming.js#L119
var proxy = httpProxy.createProxyServer({proxyTimeout:3000}) // timeout 3 seconds
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |