我是一个新手。我有几个问题:
-
Vaadin 7或更高版本是否支持websockets?
-
Vaadin是否有其他功能,如将数据从服务器推送到客户端(例如websockets)?
vadin支持Atmosphere,所以谷歌得到插件,将启用websockets。
服务器推送是几周后Vaadin 7.1的主要特性。请参阅路线图了解当前状态和相关的博客文章。
在Vaadin 7.1之前,下载最多的服务器推送插件是ICEPush,但你也可以在插件目录中找到其他替代品
Update - Push Is Built-In
jfarcand (Atmosphere的创造者)和Ludd的其他两个答案都是正确的,但现在已经过时了。
Vaadin 7.3.7(截至2015-01)现在合并了Atmosphere库。Atmosphere提供内置的Push支持。不需要添加任何jar、库、插件或附加组件。Vaadin Push首先尝试使用WebSocket技术。如果不可用,Vaadin Push将返回到其他方法。
三个简单的步骤:
- 将
@Push
注释添加到UI子类 - 使用
ScheduledExecutorService
在后台更新应用程序的数据。也许最好在ServletContextListener
中启动和停止执行器服务,在您的Vaadin web应用程序启动和关闭时调用。 - 当新数据准备好时,后台线程调用UI::access方法来调度对UI线程(请求处理线程)上的用户界面组件(部件)的访问和更改。
您可能希望一个用户的主用户界面线程更新另一个用户的显示,而不是步骤# 2。基本上是相同的想法,并且在《瓦拉丁之书》中有涉及。
有关Server Push的更多信息,请参阅The Book Of Vaadin第11.16节。
<标题> 最小的例子在2015-01,我在Vaadin 7中发布了一个最小的Push示例的答案。您可以复制单个文件的内容,以在新的默认Vaadin项目中替换MyUI
类的内容。