我们目前正在将我们的应用程序移植到 vaadin 7,我想跟踪用户在过去 30 年代左右是否活跃。我们曾经在自定义 CommunicationManager 中跟踪用户活动,但由于此类已弃用,我想我们可能不得不尝试不同的方法。
我创建了一个扩展,我用它来扩展 UI。
为简单起见,我们将点击和键盘使用计为用户活动:
// 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());
}
然后,扩展程序将安排一个计时器,该计时器将每 30 秒通过 RPC 调用一次服务器,但前提是用户一直处于活动状态。这个定时器有效。不起作用的是 DOM 事件,它们似乎永远不会到达我添加的事件侦听器。
我究竟做错了什么?