通过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对象,如下所示:

public class PushApplication extends Application {

  private ICEPush push = new ICEPush ();

  @Override
  public void init () {
    Window mainWindow = new Window ( "Push Application Example" );
    mainWindow . addComponent ( push );
  }
}

现在,每次您需要更新窗口时,只需调用push.push()

此方法调用将使用您所做的更新来更新客户端的窗口。 Vaadin将执行真正的AJAX,因为它不会重新加载页面,而只是使用更改更新视图。

像往常一样,您可以在这里以Eclipse格式找到本文的源代码。

翻译自: https://blog.frankel.ch/server-client-push-with-vaadin/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值