Seite 1 von 1

timeout

Verfasst: Do, 27. Dez 2018 12:26
von Manfred
Ich habe folgendes Problem. Der Anwender von Tablets oder Smartphones meldet sich nicht immer vom System ab, sondern schließt einfach den Browser, oder "schiebt" den Browser in den Hintergrund, ohne zu merken, daß das Teil weiter läuft. Wie sage ich dem Webserver (xb2.net) das er nach einer Zeit x die Verbindung von sich aus beendet und dann dem User, wenn er an der alten Stelle weitermachen will, wieder den Login Bildschirm vor gibt? Wenn man sich nicht ausloggt und den Vorgang somit beendet, kann man später an jeder möglichen Stelle wieder einsteigen und weitermachen. Das kann doch so nicht sein. Anders gesagt, das möchte ich verhindern. irgendwann muß doch der Webserver sagen, Ende Feierabend, da passierte mir zu lange nichts mehr, Du bist raus.

Re: timeout

Verfasst: Do, 27. Dez 2018 14:04
von brandelh
du kannst zu jedem User oder auf der Seite selbst die Zeit (seconds) eintragen (hidden) die noch akzeptabel ist und danach umlenken auf die timeout seite.
Ob XB2 sowas mit der session var automatisch machen kann weiß ich nicht, ich nutzte ja CGI EXE.

Re: timeout

Verfasst: Do, 27. Dez 2018 21:26
von AUGE_OHR
hi,

du hast doch sicherlich eine Eventloop :?:

Code: Alles auswählen

   nEvent := APPEVENT( @mp1, @mp2, @oXbp, nTimeOut )
wenn "nichts" passiert wird der 4th Parameter, nach Ablauf von nTimeOut, aktiv

Re: timeout

Verfasst: Do, 27. Dez 2018 21:58
von ramses
Hallo Manfred

um die eigentliche TCP-Verbindung musst du dich nicht kümmeren, die schliesst sich automatisch nach einigen Sekunden.
Ich habe zu dem Zweck einen "Sessions-Manager" der die Sitzungen verwaltet und jeder HTML Seite eine Session-ID mit gibt und die auch immer vor jeder Aktion geprüft wird. Alle Session-ID werden generell nach einiger Zeit auf dem Server gelöscht wenn Sie nicht mehr aktiv sind bei der nächsten Aktion erscheint dann die Loginseite.

Auf dem Client kannst du mit einer JavaScript eine Funktion bauen die, wenn der Browser nicht mehr aktiv ist sondern im Hintergrund gelegen hat, automatsich deine Login-Seite aufruft. Dazu kannst du z.B. mit setTimeout() eine Funktion bauen die sich immer erneut Aufruft und prüft wieviel zeit seit dem letzten Ausführen vergangen ist. Ist die Zeit zu lang ----> Login aufrufen

Ich hoffe du kannst dir mit dieser kurzbeschriebung etwas vorstellen.

Gruss Carlo

Re: timeout

Verfasst: Do, 27. Dez 2018 22:00
von Tom
Jimmy, es geht hier um Xb2.Net-Anwendungen und nicht um simples In-App-Eventhandling. Die Session-Handles werden nach einer gewissen Zeit ungültig, Manfred. Schau Dir einfach an, was das Timeclock-Beispiel macht. Da§ kannst Du auch selbst steuern.