Vaadin无法在OpenShift上建立Websocket连接



我在OpenShift服务器上使用Vaadin 7.3和Tomcat8(从服务器上的源代码手动构建)。我的另一个设置是同样在OpenShift上的Tomcat7 7.0.54。我的问题出现在这两种配置上。事情是这样的:当我在启用@Push支持的情况下打开我的Vaadin应用程序时,我得到了以下错误:

WebSocket connection to 'ws://t8-drewconnect.rhcloud.com/web/PUSH/?v-uiId=0&v-csrfToken=4097664e-4d3b-4dd6-9474-0a6441986e9a&X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.1.5.vaadin4-jquery&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&Content-Type=application/json;%20charset=UTF-8&X-atmo-protocol=true' failed: Error during WebSocket handshake: Unexpected response code: 501 
​Websocket closed, reason: Connection was closed abnormally (that is, with no close frame being sent). vaadinPush.debug.js:13176
Websocket closed, wasClean: false vaadinPush.debug.js:13176
Mon Sep 22 07:39:46 GMT+200 2014 com.vaadin.client.VConsole
INFO: Push connection closed com.drewconnect.web.AppWidgetSet-0.js:4714
Websocket failed. Downgrading to Comet and resending vaadinPush.debug.js:13176
Mon Sep 22 07:39:46 GMT+200 2014 com.vaadin.client.VConsole
INFO: Push connection using primary method (websocket) failed. Trying with long-polling 

我花了很多时间在网上阅读,可以做些什么,阅读关于启用原生氛围支持等的内容。当我准备配置它时,我发现Vaadin使用捆绑在atmosphere-runtime-2.1.2.vaadin3.jar中的atmosphere,我不确定我是否能摆脱它。这篇大气文章https://github.com/Atmosphere/atmosphere/wiki/Installing-AtmosphereServlet-with-or-without-native-support建议使用本机氛围运行时,但看起来Vaadin使用了一些自定义版本。。。

奇怪的是,在localhost(在我的开发环境中)上,WebSockets连接的建立没有任何问题。。。

我是在用一种很好的方法来解决这个问题,还是在其他地方?;-)你们知道这个问题的解决办法吗?我很感激这个答案,因为websocket和长轮询之间的协商需要很多时间——我必须等待大约2分钟,应用程序才会做出反应,有时它永远不会完成(屏幕顶部有一个闪烁的进度条,它永远不会达到100%)。我的客户,我已经向他展示了该应用程序的演示,在10种情况中有9种无法连接,所以我完全陷入了困境——如果看不到演示,他就不会再和我合作了;(

OpenShift使用的默认前端代理还不支持WebSockets。我听说他们很快就会更新。在此之前,您可以从已经支持web套接字的8000端口使用他们的实验性替代代理。在您的情况下,可以从以下地址联系:

http://t8-drewconnect.rhcloud.com:8000/web/

还要注意,轮询(UI.setPollingInterval(int))通常在大多数情况下都足够好了。

相关内容

  • 没有找到相关文章

最新更新