vaadin
因为我看到了该解决方案的诸多优点,所以我越来越致力于Vaadin 。 这次,我研究了如何将服务器数据推送到客户端。
Vaadin是一个通用框架,非常明智,不会强迫您以一种或另一种方式进行编码。 核心发行版中提供了许多功能,但附加组件目录中提供了更多功能。 一种这样的附加组件使您可以将推送功能添加到简单的应用程序中。 该加载项基于ICEPush技术,并被恰当地命名为ICEPush加载项。
ICEPush是一种可与Java和JavaScript一起使用的技术品牌,它使用长轮询来实现推送,因此不需要打开端口(当然,请节省标准HTTP流使用的端口)。 ICEPush Vaadin插件以非常简单的方式将ICEPush集成到您的Vaadin应用程序中,因此仅需太多步骤即可开发出具有推送功能的成熟应用程序。
设置ICEPush附加组件
创建Vaadin项目(和应用程序)后,将ICEPush库添加到您的项目中。 如果使用Maven,只需将以下代码段添加到POM中:
<dependency>
<groupId> org.vaadin.addons </groupId>
<artifactId> icepush </artifactId>
<version> 0.2.0 </version>
</dependency>
<repository>
<id> vaadin-addons </id>
<url> http://maven.vaadin.com/vaadin-addons </url>
</repository>
如果没有,只需下载目录中可用的ZIP。 请注意,应将其中的所有JAR复制到WEB-INF / lib。 即使其中两个看起来相似,一个是ICEPush JAR,另一个是Vaadin的集成层。
如果您在IDE中使用Vaadin插件,并且它要求您重新编译窗口小部件集,只需单击“是”并完成它。
使用正确的servlet
替换你的web.xml(大概配置默认的servlet com.vaadin.terminal.gwt.server.ApplicationServlet
)与org.vaadin.artur.icepush.ICEPushServlet
。
将ICEPush对象添加到您的窗口
为了使用推送技术,您必须在使用中的窗口中添加一个新的ICEPush对象,如下所示:
publicclassPushApplicationextendsApplication{
privateICEPushpush=newICEPush();
@Override
publicvoidinit(){
WindowmainWindow=newWindow("Push Application Example");
mainWindow.addComponent(push);
}
}
现在,每次您需要更新窗口时,只需调用push.push()
!
此方法调用将使用您所做的更新来更新客户端的窗口。 Vaadin将执行真正的AJAX,因为它不会重新加载页面,而只是使用更改更新视图。
像往常一样,您将在这里以Eclipse格式找到本文的源代码。
翻译自: https://blog.frankel.ch/server-client-push-with-vaadin/
vaadin