Openshift Websocket自定义域名

时间:2014-08-01 12:49:40

标签: node.js websocket cors openshift

我最近使用自定义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

2 个答案:

答案 0 :(得分: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

答案 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支持生产,使用的证书将是   签名并且与当前部署一样有效。