Websocket Vaadin 7推送和Eventbus+组合之间的差异;即时模式

Websocket Vaadin 7推送和Eventbus+组合之间的差异;即时模式,websocket,vaadin,guava,vaadin7,Websocket,Vaadin,Guava,Vaadin7,我需要更新不同的字段(tinycon和一个类似于facebook的按钮上的徽章),指示我的Vaadin7 Webapp中登录用户未读邮件的数量 所以我开始设置Vaadin 7推送功能,但没有成功。在最新的Tomcat(使用:7.0.61和8.0.30进行测试)和最新的Vaadin(7.5.10)上,它根本不起作用。没有错误消息,但也没有推送。来自的PushDemo也没有做任何事情。我猜我公司的防病毒软件会中断基本的websocket通信 但最后,我实现了预期的结果(=>在运行时根据事件动态更新字

我需要更新不同的字段(tinycon和一个类似于facebook的按钮上的徽章),指示我的Vaadin7 Webapp中登录用户未读邮件的数量

所以我开始设置Vaadin 7推送功能,但没有成功。在最新的Tomcat(使用:7.0.61和8.0.30进行测试)和最新的Vaadin(7.5.10)上,它根本不起作用。没有错误消息,但也没有推送。来自的PushDemo也没有做任何事情。我猜我公司的防病毒软件会中断基本的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秒进行一次服务器交互。
组件可以是这样的东西。

Dankeäh谢谢Andre。我明白了。这意味着setImmediate(true)仅启用此处所述的用户初始化轮询,对吗?因此,始终需要用户交互。我将了解是否继续使用此客户端触发的方法或切换到轮询。当我的webapp获得太多用户时,轮询可能存在性能劣势:-/