haproxy和socket.io没有完全正常工作

时间:2011-12-28 23:18:20

标签: websocket socket.io haproxy

我已尝试在博客和stackoverflow中发布的所有可想到的haproxy配置,但我仍然无法让haproxy和socket.io在100%的时间内工作。在大多数“支持”网络套接字的浏览器中,它都会失败并在错过心跳后再次进行长时间的轮询。浏览器似乎进行初始连接(nodejs调试),但我无法让客户端接收连接响应。还有其他人有类似的问题吗?以下是软件版本号和我尝试过的几个配置。

  • haproxy 1.4.18
  • node 0.6.5
  • socket.io 0.8.7

Haproxy配置(我尝试过更多和更多选项):

支持的Web套接字:

  • Safari 5(Windows)
  • Chrome 11(Linux)

1 个答案:

答案 0 :(得分:-2)

Websockets无法进行反向代理,因为客户端必须在标头未在Content-Length标头中公布后必须发送的8字节数据,因此中间人在握手完成之前不会转发该数据。由于握手需要完成这8个字节,因此握手永远不会完成并且死锁,http://www.enotes.com/topic/WebSockets#Proxy_traversal。这不是唯一的来源。更多来源验证他们不能反向代理。