Ich nutze u.a. seit längerer Zeit den NeoBroker Smartbroker für den Wertpapierhandel. Die Handelsplattform der DAB BNP Paribas war zwar altbacken aber funktional, jedoch deren Automatischer Logout nach starren 5 Minuten Inaktivität (Session Timeout) machten mich Wahnsinnig. Die Konkurrenz wie beispielsweise Finanzen.net Zero ermöglichen es, die Handelsplattform mit einer einzelnen Freigabe den ganzen Tag über offen zu halten. So viel Zeit benötige ich zwar auch nicht, aber 5 Minuten sind doch einfach viel zu wenig. Als Notlösung ließ ich mittels Javascript Injection Tastatureingaben simulieren um die Sessionzeit künstlich zu verlängern, somit wurde alle 2 Minuten ein Tastatur Event (bei mir die SHIFT Taste) ausgelöst.
Seit der Umstellung vom Smartbroker zum Smartbroker+ funktioniert das ganze scheinbar jedoch nicht mehr, gefühlt würde ich sogar behaupten – wurde der Smartbroker+ Session Timeout noch weiter gekürzt. Zum analysieren der ganzen JS Applets bin ich noch nicht gekommen, somit habe ich mir vorläufig eine Notlösung zusammengeschustert, quick & dirty aber derzeitig funktional.
Die Seite wird im eingestellten Zeitabstand einfach neu geladen, jedoch nur wenn keine Aktivität per Tastatur oder Maus registriert wird. Die Zeit ist in der achten Zeile in Millisekunden anzugeben. Sobald Tastatureingaben oder Mausbetätigungen registriert werden, wird der Timer auf 0 zurückgesetzt, somit wird die Seite nicht neu geladen während ich bspw. eine Order eintrage. Inzwischen habe ich die Smartbroker+ Handelsplattform seit 6 Stunden offen, mehr als genug für meine Zwecke.
Ich nutze folgende Erweiterung für meinen Chromium / Chrome: Code Injector
Als Host bzw. Webseite wird folgendes Regular Expression eingetragen:
app\.smartbrokerplus\.de/((?!(goodbye|realms)).)
Das jeweilige URL Addendum „/goodbye“ und „/realms“ (Ausloggen, Einloggen) sind vom automatischen neuladen der Webseite ausgeschlossen.
Anschließend wird die Code Injector Erweiterung mit folgendem JavaScript Code gefüttert:
function pageReload() { location.reload(); } function resetTimer() { console.log("Autoreload Timer Reset"); clearTimeout(time); time = setTimeout(pageReload, 120000); } var time; resetTimer(); document.onmousedown = resetTimer; document.onkeydown = resetTimer; console.log("Autoreload Active");