2011-09-08 134 views
1

我使用gwt 2.3与gwtp框架。在这个应用程序中,我想保持5分钟的会话时间。这意味着如果当前用户没有做到5分钟,并且他在5分钟之后他在屏幕上的第一个事件/行动应该被注销。 在gwt中有类可以用于这个问题的定时器。但我没有得到如何识别用户在屏幕上的动作。我做过谷歌,&找到代码gwt-ext.Below是代码GWT-EXTgwt客户端会话超时

Ext.get(“pagePanel”).addListener(“click”, new EventCallback() { 
    @Override 
    public void execute(EventObject e) { 
     MessageBox.alert(“On Mouse Click”); 
    } 
}); 

Ext.get(“pagePanel”).addListener(“keydown”, new EventCallback() { 

    @Override 
    public void execute(EventObject e) { 
     MessageBox.alert(“On Key Press Click”); 
    } 
}); 

在上面的代码标签在正常工作的,所以我从那里我得到这个代码粘贴链接。 here

相同类型的代码我正在寻找gwt.If有任何其他更好的方法来做到这一点,请让我知道。在此先感谢

回答

3

如果动作/事件可真对一切,我会在下面的方式 NativePreviewHandler解决它:

boolean expired; 

final Timer logoutTimer = new Timer() { 
    @Override 
    public void run() { 
     expired = true; 
    } 
}; 

NativePreviewHandler nph = new NativePreviewHandler() { 

    @Override 
    public void onPreviewNativeEvent(NativePreviewEvent event) { 
     if (!expired) { 
      logoutTimer.cancel(); 
      logoutTimer.schedule(300000); 
     } else { 
      // do your logout stuff here 
     } 
    } 
}; 

Event.addNativePreviewHandler(nph); 

如果用户shell注销不含5分钟后新的动作:

final Timer logoutTimer = new Timer() { 
    @Override 
    public void run() { 
     // do your logout stuff here 
    } 
}; 

NativePreviewHandler nph = new NativePreviewHandler() { 

    @Override 
    public void onPreviewNativeEvent(NativePreviewEvent event) { 
     // Of course do this only when logged in: 
     logoutTimer.cancel(); 
     logoutTimer.schedule(300000); 
    } 
}; 

Event.addNativePreviewHandler(nph); 
+0

@是否有任何其他方式来处理客户端会话 –