我最近用自定义ssl证书更改了www.myapp.com中我的openshift默认域myapp.rhcloud.com。在网页要求服务器建立websocket连接之前,配置工作得很好。我使用节点与套接字。启用IO和websockets
I first try:
io.connect(www.myapp.com:8443/...)
但是返回一个错误。
所以我将socket连接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.
是否有一种方法允许websocket连接通过自定义域在Openshift ?或者,我需要设置cors吗?
编辑我离开了插座。我没有将协议传递给socket.io
根据我的理解,WebSockets使用这样的东西(wss而不是ws用于安全)
wss://www.yourapp.com:8443
确保使用域别名
设置openshifthttps://www.openshift.com/kb/kb-e1096-how-to-setup-an-alias-for-your-application当我在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的产品,使用的证书将是已签署并与当前部署一样有效。