我在AWS中的应用程序负载均衡器后面有一组实例 . 服务器运行客户端可以连接的 socket.io
服务器 .
要启动新的 socket.io
服务器,将对在该实例上运行的Web服务器发出HTTPS请求 . 我've configured application level sticky sessions, so this web server sends a response which includes a cookie that'用于未来的粘性会话 .
我遇到的问题是 socket.io-client
,我允许使用 extraHeaders
API设置 cookie
标头,因为它是浏览器中 XMLHTTPRequest
的禁止标头 .
This architecture works if I'm connecting to the server via node ,因为 XMLHTTPRequest
限制不适用且 socket.io-client
所做的握手能够发送负载均衡器用于将连接分配给正确实例的cookie .
有办法:
-
规避禁止的 Headers 限制(不太可能)
-
将cookie作为非"cookie"标头传递,然后在标头到达负载 balancer 器之前对其进行转换
-
使用非基于cookie的粘性会话方法
非常感谢!