【发布时间】:2018-03-16 06:22:43
【问题描述】:
问题是从 Openshift 2 迁移到 Openshift 3 后,我无法获得 WebSockets 通信。 Here is the same question but it doesn't work for me.
我有:
WebSocket 握手期间出错:意外响应代码:404
刷新同一页面后:
WebSocket 握手期间出错:意外响应代码:503
这是我的代码
var wsUri ="ws://" + document.location.host + "/scada1WebSockEndpoint"
var websocket = new WebSocket(wsUri);
它适用于我的本地 Apache,但不适用于 Openshift 平台。对我来说,看起来 websocket 根本不起作用,或者 wsUri 不正确。
有什么想法吗?
【问题讨论】:
-
您尝试从 OpenShift 外部连接到哪个端口号?在 V2 中,您必须使用单独的端口。在 V3 中,它是普通端口 80/443,具体取决于使用的是不安全连接还是安全连接。
-
我应该在哪里指出端口号?在 V2 中我做了
var wsUri = "wss://canconnectweb-sergeylotvin.rhcloud.com:8443/scada1WebSockEndpoint";在 V3 中这个选项不起作用 -var wsUri ="ws://" + document.location.host + ":80/scada1WebSockEndpoint"我尝试了 8080 和 443 和 8443。没有任何帮助。 -
不包括
:8443。使用与您为应用程序创建的路由对应的主机名,并将其暴露在集群之外。使用oc get routes找出答案,或查看 Web 控制台概述页面。 -
嗯,就像在我的开始消息中一样。我试过
var wsUri ="ws://" + document.location.host + "/scada1WebSockEndpoint"Ports 这里没有提到。document.location.host- 更改为真实的应用程序名称(与公开的路线完全相同)。scada1WebSockEndpoint- 这只是端点的名称。 -
您还可以使用端口转发将端口 8080 暴露给您的本地计算机并绕过 haproxy 以验证 haproxy 没有导致问题。
标签: java websocket openshift tomcat8