Vaadin 7 Push和Eventbus+即时模式组合之间的差异



我需要更新不同的字段(tinycon和类似于facebook上按钮的徽章),指示登录用户在我的Vaadin7 Web应用程序中未读消息的计数。

所以我开始设置Vaadin 7推送功能,但没有成功。在最新的Tomcat(使用:7.0.61和8.0.30测试)和最新的Vaadin(7.5.10)上,它根本不起作用。没有错误消息,但也没有推送。PushDemo来自https://vaadin.com/wiki/-/wiki/Main/Enabling+服务器+推送也没什么作用。我猜我公司的防病毒软件中断了底层的websocket通信。

但最终,我在没有Vaadin Push的情况下实现了所需的结果(=>在运行时基于事件动态更新字段标签),而是通过Eventbus(Guava)发送事件和在相关GUI字段上设置setimmediate(true)的简单组合。

问题:这是否意味着我根本不需要Vaadin Push来实现所需的功能,或者我错过了什么?我使用Push/Websockets有什么优势/我的实际解决方案有什么缺点吗?或者它类似于Vaadin Push解决方案吗?

简短问题:

(From result aspects): Vaadin 7 Push equals Eventbus + immediate fields.

setImmediate(true)没有推送或轮询您的服务器!

当对象在客户端触发事件时,它只执行服务器往返。另请参阅关于setImmediate的讨论。

轮询和推送之间的区别是:

  • 推送:服务器通知客户端更改,否则两者之间没有流量
  • 轮询:客户端每隔X秒询问服务器是否已完成更改
  • setImmediate(true):只有当客户端向服务器发送请求时才会更新(大多数是UI中定义的一些EventListener。当用户不移动鼠标时,不会显示每次更新

如果推送不起作用,最好使用轮询对象,它每x秒进行一次服务器交互。progressbar组件就是这样一个东西。

相关内容

  • 没有找到相关文章

最新更新