Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Stefan Reuther Newsgroups: de.comp.lang.javascript Subject: =?UTF-8?Q?Re:_Aktion_beim_Schlie=c3=9fne_eines_Browserfensters?= Date: Fri, 7 Dec 2018 19:47:27 +0100 Lines: 41 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Trace: individual.net Lggum/TDt577VQDhAd9KfActHFshClERncVUsiRUTT60Nue3Qt Cancel-Lock: sha1:X3h/PFzqPBPKwm3YKT4iwCZd1ec= User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Hamster/2.1.0.1538 In-Reply-To: Xref: csiph.com de.comp.lang.javascript:4991 Am 06.12.2018 um 21:22 schrieb Thomas 'PointedEars' Lahn: > Stefan Reuther wrote: >> Besser wäre da eine Lösung, wo der Browser extra eine Socketverbindung >> zum Server aufbaut. Wenn das Browserfenster geschlossen wird, egal aus >> welchem Grund, wird die Socketverbindung geschlossen; daran kann die >> Serverseite erkennen, dass die Session beendet ist. Eine Möglichkeit >> wäre ein Websocket. Das braucht serverseitig aber ein wenig mehr als nur >> ein paar php-Skripte. > > Ich wollte eigentlich schreiben: > > Konkret braucht es einen veralteten Browser oder einen sehr versierten > Benutzer, da man sich entschieden hat, WebSocket-Unterstützung aus > Sicherheitsgründen entweder per Default zu deaktivieren oder wieder zu > entfernen. > > Jedoch bezieht sich das nur auf eine ältere Version des Protokolls. > Offenbar wird WebSocket (neue Version) inzwischen weithin unterstützt: > > Seit 5 Jahren, wenn ich die Werte richtig parse. Kann man also nehmen, insbesondere, wenn's fürs Intranet ist und man nicht mit Usern aus dem zentralafrikanischen Busch rechnen muss. >> Eine andere Lösung wäre, z.B. alle 10s ein Ping an die Webseite zu >> schicken. Empfängt der Server für 30s kein Ping, ist die Session >> beendet. Das ist auch mit normalen php-Skripten realisierbar, und ist >> speziell im lokalen Netzwerk durchaus vertretbar. > > Aber unnötig, da Session-Cookies automagisch beim Beenden des Browsers > gelöscht werden. Dann gibt es zwar noch (bis zum Timeout) die > Server-Session, aber keine Möglichkeit mehr, darauf zuzugreifen. Also alles > im grünen Bereich, oder? Vielleicht möchte der Server die Session dennoch zeitnah loswerden, um z.B. anderen Nutzern Zugriff zu gewähren. Wordpress und Confluence machen sowas. Confluence arbeitet offenbar mit 30s-Pings. Stefan