AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi FMX App und TDSRestConnection, was tun, wenn Session abgelaufen ist
Thema durchsuchen
Ansicht
Themen-Optionen

FMX App und TDSRestConnection, was tun, wenn Session abgelaufen ist

Ein Thema von michaelg · begonnen am 19. Jul 2023 · letzter Beitrag vom 19. Jul 2023
 
michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#1

FMX App und TDSRestConnection, was tun, wenn Session abgelaufen ist

  Alt 19. Jul 2023, 10:33
Moin zusammen,

stellt Euch vor, Ihr öffnet eine App, die sich Daten von einem Datasnapserver holt. Es gibt eine Anmeldung, wenn diese erfolgreich ist, gibts eine Session. Daten werden abgerufen, alles gut. Nun legt Ihr die App in den Hintergrund (Android iPhone, Windows, egal). Später geht Ihr wieder in die App, und fordert erneut Daten an. Mittlerweile ist die Session abgelaufen und es gibt eine Exception

Code:
HTTP/1.1 403 Session has expired:
Die angegebene Sitzung ist abgelaufen, weil sie inaktiv war oder eine ungültige Sitzungs-ID hatte.
Diese Meldung erscheint direkt auf dem Bildschirm. (Um nicht ewig auf das Ablaufen der Session zu warten, kann man auch einfach den Datasnap-Server anhalten und neu starten während auf dem Gerät der Client noch läuft. Dann kommt dieselbe Exception.)

Clientseitig
Ich möchte "PreserveSessionID" nicht auf False setzen, da im Internet steht, das würde den Server stressen für jedes Request eine eigene Session zu erzeugen.

Deshalb dachte ich, ich könnte die Exception abfangen, wenn sie auftritt, mich neu verbinden und das Request erneut aufrufen, so dass der Benutzer nix davon mitbekommt und er das Gefühl hat, er ist immer online.

tDSRestConnection hat aber leider kein "OnError" oder ähnliches. Wie fange ich die Exception ab?

Ich möchte auch nicht in jeder einzelnen Datasnap-ClientMethode machen, ich suche einen allgemeingültigen Weg. Hat jemand einen Codeschnipsel oder einen Hinweis?

Serverseitig
ServersessionTimeout auf 0 zu setzen am Server kann ich auch nicht, da ich nur einen tDSServer benutze und keinen Webdispatcher habe.

Wie ist das mit "Invocation" beim Life-Cycle des DSServers? Ist das zu empfehlen als Alternative zu "Session"?

Viele Grüße
Michael
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz