Vaadin 7 Push与Eventbus+立即模式组合的区别
Difference between Vaadin 7 Push and combination of Eventbus + immediate mode
我需要更新不同的字段(tinycon 和按钮上的徽章,类似于 facebook 上的按钮),指示我的 Vaadin7-Webapp 中已登录用户的未读消息数。
所以我开始设置 Vaadin 7 推送功能但没有成功。在最新的 Tomcat(测试:7.0.61 和 8.0.30)和最新的 Vaadin (7.5.10) 上,它只是不起作用。没有错误消息,也没有推送。来自 https://vaadin.com/wiki/-/wiki/Main/Enabling+server+push 的 PushDemo 也什么也没做。我猜测 我公司的防病毒软件中断了底层的 websocket 通信。
但最后,我在没有 Vaadin Push 的情况下,通过 Eventbus (Guava) 发送事件并设置 setimmediate(true) 实现了预期的结果(=> 在运行时根据事件动态更新字段标签) ) 在相关的 GUI 字段上。
问题:这是否意味着我根本不需要 Vaadin Push 来实现所需的功能,或者我是否遗漏了什么? Push/Websockets 我有什么优势/我的实际解决方案有什么缺点还是类似于 Vaadin-Push 解决方案?
简化问题:
(From result aspects): Vaadin 7 Push equals Eventbus + immediate fields.
?
setImmediate(true) 不会推送或轮询您的服务器!
当对象在客户端触发事件时,它只是进行一次服务器往返。
另请参阅 this 关于 setImmediate 的讨论。
轮询和推送的区别是:
- 推送:服务器通知客户端更改,否则两者之间没有流量
- 轮询:客户端每隔 X 秒询问服务器是否已完成更改
- setImmediate(true):仅当客户端向服务器发送请求时更新(主要是在您的UI中定义的一些EventListeners。当用户不移动鼠标时,不会显示任何更新
如果推送不起作用,最好使用 polling 对象,它每 x 秒进行一次服务器交互。
progressbar组件可以是这样的东西。
我需要更新不同的字段(tinycon 和按钮上的徽章,类似于 facebook 上的按钮),指示我的 Vaadin7-Webapp 中已登录用户的未读消息数。
所以我开始设置 Vaadin 7 推送功能但没有成功。在最新的 Tomcat(测试:7.0.61 和 8.0.30)和最新的 Vaadin (7.5.10) 上,它只是不起作用。没有错误消息,也没有推送。来自 https://vaadin.com/wiki/-/wiki/Main/Enabling+server+push 的 PushDemo 也什么也没做。我猜测 我公司的防病毒软件中断了底层的 websocket 通信。
但最后,我在没有 Vaadin Push 的情况下,通过 Eventbus (Guava) 发送事件并设置 setimmediate(true) 实现了预期的结果(=> 在运行时根据事件动态更新字段标签) ) 在相关的 GUI 字段上。
问题:这是否意味着我根本不需要 Vaadin Push 来实现所需的功能,或者我是否遗漏了什么? Push/Websockets 我有什么优势/我的实际解决方案有什么缺点还是类似于 Vaadin-Push 解决方案?
简化问题:
(From result aspects): Vaadin 7 Push equals Eventbus + immediate fields.
?
setImmediate(true) 不会推送或轮询您的服务器!
当对象在客户端触发事件时,它只是进行一次服务器往返。 另请参阅 this 关于 setImmediate 的讨论。
轮询和推送的区别是:
- 推送:服务器通知客户端更改,否则两者之间没有流量
- 轮询:客户端每隔 X 秒询问服务器是否已完成更改
- setImmediate(true):仅当客户端向服务器发送请求时更新(主要是在您的UI中定义的一些EventListeners。当用户不移动鼠标时,不会显示任何更新
如果推送不起作用,最好使用 polling 对象,它每 x 秒进行一次服务器交互。 progressbar组件可以是这样的东西。