2013-04-04 81 views
2

我们正在将应用程序移植到vaadin 7,并且我想跟踪用户在过去30多年中一直处于活动状态。 我们用来跟踪自定义CommunicationManager中的用户活动,但由于此类已弃用,我想我们可能需要尝试不同的方式。Vaadin7:跟踪用户是否处于活动状态(DOM事件处理程序)

我创建了扩展用户界面的扩展。

为了简单起见假设,我们计算点击和键盘使用的用户活动:

// this is the extend method in the extension connector 
@Override 
protected void extend (ServerConnector target) { 
    UIConnector uiConnector = (UIConnector) target; 
    VUI uiWidget = uiConnector.getWidget(); 
    uiWidget.addDomHandler(this.keyPressed(), KeyPressEvent.getType()); 
    uiWidget.addDomHandler(this.mouseClicked(), ClickEvent.getType()); 
} 

扩展随后将安排一个计时器,将通过RPC每隔30s调用服务器,但只有当用户有一直活跃。 这个定时器的工作原理。什么不工作是DOM事件,他们似乎从来没有达到我添加的事件监听器。

我在做什么错?

回答

0

根据你的实施,我建议你试试Refresher add-on。它以类似的方式工作,但可以更好地控制轮询间隔,即服务器端侦听器。另外,你不必维护它。

另一种选择是利用Vaadin轮询支持(请参阅https://vaadin.com/wiki/-/wiki/Main/Using%20polling)。

+0

复习不会做同样的事情。事实上,复习正是最初提出的问题。我们无法跟踪会话的请求活动,当某个页面上有复习时。用户会话永远不会超时,因为刷新器不断创建请求。 – kungfoo 2014-01-24 12:39:39

相关问题