我在OpenShift实例(RedHat)上使用Vaadin 7.1.2。
OpenShift提供了一个node.js代理,它应该与WebSocket兼容,但WebSocket连接在打开后立即关闭,没有错误消息(Vaadin只显示"connection closed"、"wasclean:true"、"reason:")。
因为没有错误,所以Vaadin/Atmosphere不会回到流媒体模式,而是继续每两秒钟打开一次Websocket。
我正在寻找一种方法来完全禁用Vaadin/大气中的websocket,转而启用流媒体。
您可以通过在UI类中使用以下注释来禁用websocket并强制流式传输:
@Push(transport = Transport.STREAMING)
public class PushUI extends UI {
...
}
如今,所有Vaadin版本都不赞成使用STREAMING
传输。你应该使用
@Push(transport = Transport.LONG_POLLING)
而是使用普通的HTTP而不是WebSockets。