【问题标题】:Openshift Websocket custom domainOpenshift Websocket 自定义域
【发布时间】:2014-08-01 12:49:40
【问题描述】:

我最近在 www.myapp.com 中使用自定义 ssl 证书更改了我的 openshift 默认域 myapp.rhcloud.com。在网页向服务器请求 websocket 连接之前,该配置运行良好。我使用启用了 socket.io 和 websockets 的节点

我第一次尝试:

io.connect(www.myapp.com:8443/...)

但这会返回错误。

所以我将套接字连接 url 设置为:

io.connect(myapp.rhcloud.com:8443/...)

但我收到此错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.myapp.com' is therefore not allowed access. 

有没有办法允许通过 Openshift 上的自定义域进行 websocket 连接?或者,我需要设置 cors 吗?

编辑 我留下了 socket.io 前缀的 websocket url 我没有将协议传递给 socket.io

【问题讨论】:

    标签: node.js websocket cors openshift


    【解决方案1】:

    据我了解,WebSockets 使用类似这样的东西(wss 而不是 ws 用于安全)

    wss://www.yourapp.com:8443
    

    确保使用您的域别名设置 openshift

    https://www.openshift.com/kb/kb-e1096-how-to-setup-an-alias-for-your-application

    【讨论】:

    • 两周前这里有一个关于这个的问题。端口 8000 和 8443(???不记得了)是你需要使用的。
    • 端口 8000 用于不安全的 websocket 端口 8443 用于安全。
    【解决方案2】:

    当我在 Chrome 中登录到 https://www.myapp.com:8443/socket.io/1/ 时,我得到了错误

    Identity not verified
    

    https://www.myapp.com 不是这种情况... 经过几次测试和搜索后,我认为这个错误是由于 openshift 上的 websocket 预览环境造成的。来源(https://www.openshift.com/blogs/paas-websockets):

    更新:还有一种已知的并发症。当使用我们的 使用 HTTPS 和 WSS 协议的 WebSockets 的预览部署,您 将面临自签名证书。那是因为这个环境是 只是暂时的,让您深入了解即将推出的功能。一旦我们 将新的路由层移动到标准端口 80 和 443,即我们移动 WebSockets 支持投入生产,使用的证书将是 在当前部署中已签名且有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      • 2014-05-22
      相关资源
      最近更新 更多