Tempo di sessione client GWT
-
27-10-2019 - |
Domanda
Sto usando GWT 2.3 con GWTP Framework. In questa applicazione sono WAN per mantenere un tempo di sessione di 5 minuti. Questo significa se l'utente attuale non sta facendo fino a 5 minuti e arriva dopo cinque minuti, quindi sul suo primo evento/azione sullo schermo a dovrebbe essere disconnesso. In GWT esiste una classe denominata timer che può essere utilizzata in questi numeri. Ma non sto ottenendo come riconoscere l'azione dell'utente sullo schermo. Ho fatto Google su di esso e ho trovato il codice per GWT-Ext.Below è il codice di GWT-Ext
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”);
}
});
Nel tag di codice sopra nel funzionamento correttamente in modo da allegare il link da dove ho ottenuto questo codice.qui
Stesso tipo di codice che sto cercando in GWT. Se c'è qualche altro modo migliore per farlo, per favore fatemelo sapere. Grazie in anticipo
Soluzione
Se l'azione/evento può essere davvero tutto ciò, lo risolverei con a
NativePreviewHandler
nel seguente modo:
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);
Se la shell dell'utente deve essere disconnesso senza una nuova azione dopo 5 minuti:
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);