NodeJS - SocketIO over SSL with websocket transport



我有一个NodeJS socketIO服务器,它的客户端从JS、PHP和;蟒蛇当通过普通HTTP/WS通道进行通信时,它就像一个魅力。

现在,当我试图保护此通信时,websocket传输不再工作。它又回到xhr轮询(长轮询)传输。Xhr轮询仍然适用于JS客户端,但不适用于纯粹依赖套接字传输的python。

我尝试过的东西:

  1. 在节点上,使用https(具有商业证书)而不是http-适用于通过节点提供页面,但不适用于socketIO
  2. 代理通过HAProxy(1.15-ev19)。从HTTPS(HAProxy)到HTTP(节点)。无法使Websocket传输正常工作,并且返回到JS上的xhr轮询Python在握手时得到502
  3. 代理通过STunnel(用于HTTPS)->HAProxy(Websocket代理)->Node(SocketIO)-这也不起作用。Python客户端在握手时仍然得到502
  4. 代理通过Stunnel(HTTPS)->节点(SocketIO)-这也不起作用。不确定STunnel是否支持websocket代理
  5. 节点http代理:在websocket上抛出500(发生错误:{"code":"ECONNRESET"})并返回xhr轮询

我确信这是一个常见的用例,并且存在一个解决方案。非常感谢您的帮助。

提前感谢!

我的情况似乎很少见。我在基于AmazonLinux的EC2实例上构建了整个环境。由于几乎所有的百胜软件包都不是最新的,我不得不从源代码安装几乎所有的百胜软件包。如果这样做,我可能会错过未更改/添加的配置。或者HAProxy所需的lib可能不是最新的。

无论如何,我再次尝试在基于ubuntu 12.04的EC2实例上构建环境。HAProxy的工作就像一个魅力与一些配置调整。我现在可以从JS、Python&SSL上的PHP没有任何问题。我还可以创建一个在443上侦听的安全TCP Amazon ELB,并将其代理到非标准端口(8xxx)。

让我知道,如果其他人遇到类似的问题,我会很乐意提供帮助!

相关内容

  • 没有找到相关文章

最新更新