node.js - 使用 Socket.io 的 node-http-proxy websocket 超时

标签 node.js socket.io ubuntu-12.04 node-http-proxy

由于某种原因,http-proxy 导致基于 socket.io 的 websocket 连接每 2 分钟重新连接一次。在重新连接消息在客户端和服务器之间正常工作之前。如果我绕过代理,websocket 连接无需重新连接即可工作。代理配置非常基本,并遵循 nodejitsu 的示例。

var http = require('http'),
  httpProxy = require('http-proxy');

var options = {
  hostNameOnly: true,
  router: {
    'example.com/sockets/': '127.0.0.1:9001'
  }
};

var proxyServer = httpProxy.createServer(options);
proxyServer.listen(80);

我也曾尝试更改配置中的超时选项,但这对重新连接问题没有影响。

timeout: 120000 // override the default 2 minute http socket timeout value in milliseconds

软件版本:Ubuntu 12.04 服务器,node.js 0.8.16,http-proxy 0.8.7,socket.io 0.8.7。

这在 dev Mac (10.8.3) 和 Ubuntu 桌面 12.04 (virtualbox) 上完美运行,但在服务器上运行不正常。

最佳答案

在传递给 createServer 的选项中设置超时。 options.timeout 套接字超时 和 options.proxyTimeout 允许传出套接字超时,以便我们可以在初始请求时显示错误页面。

关于node.js - 使用 Socket.io 的 node-http-proxy websocket 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16775719/

相关文章:

javascript - react 状态 Hook 设置回调触发两次的任何原因?

python - 为独立 HTML 桌面应用程序安装 Webkit

linux - Ubuntu 12.04 : ld cannot find library

javascript - 间歇性 browserify 捆绑失败(可能是 brfs)

javascript - 如何使用 d3 + socket.io 进行平滑过渡

node.js - Apache 托管 php 网站和 Node js CORS 代理

node.js - WS 和 socket.io 有什么关系?

benchmarking - 在 httperf 中更改文件描述符大小

node.js - Node 流捕获 Promise 的错误?

javascript - 等待永远不会解决,之后的下一行从未执行