2013-04-04 122 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

相關問題