我最近使用自定义ssl证书在www.myapp.com上更改了我的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吗?
修改 我留下了socketocket url的socket.io前缀我没有将协议传递给socket.io
答案 0 :(得分:1)
根据我的理解,WebSockets使用类似的东西(wss代替ws代表安全)
wss://www.yourapp.com:8443
确保使用域别名
设置openshifthttps://www.openshift.com/kb/kb-e1096-how-to-setup-an-alias-for-your-application
答案 1 :(得分:0)
当我在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支持生产,使用的证书将是 签名并且与当前部署一样有效。