Da die Serveranwendung den Onlinestatus in eine Datenbank einträgt, die dann hinterher von anderen Programmen ausgelesen werden kann,
muss der Server auch immer wissen, ob der Client noch da ist.
alles was der Server weiß, ist daß zu einem bestimmten Zeitpunkt X der Client geantwortet hat.
Nicht mehr nicht weniger.
Das stimmt, aber wenn der Client ab und an mal etwas schickt, hält ein Switch dann die Verbindung offen (wenn ich das hier alles richtig verstanden habe)
und es könnte einzig das Problem auftreten, dass Server oder Client abschmieren. Wenn das der Fall ist, wird die Gegenseite das mit der Zeit aber auch herausfinden.
Entweder verschwindet der Befehl im Nirvana, weil der Server den Client für dauerhaft offline hält, oder der Befehl wird gecacht und dann viel zu spät ausgeführt,wenn er schon gar nicht mehr benötigt wird.
Es soll auch für Daten/Befehle so etwas wie ein Verfallsdatum geben (TimeToLive)
An sich eine gute Idee, aber weder Server noch Client wissen, wie der Nutzer reagiert, wenn sein Befehl nicht sofort ausgeführt wird.
Darum kann ich eigentlich nicht global so eine Zeit festlegen.
Darum muss die Verbindung an sich immer offen gehalten werden.
Ich werde dann mal eine "Sinnlos-Kommunikation" einbauen.
Ich meine damit, dass Server und Client zwischendurch einfach mal ein "Hallo, wie geht's?" schicken
und wenn es keine Antwort gibt, trennen sie die Verbindung und versuchen es erneut. Die übertragenen Daten werden
aber vom Server bzw. Client nicht weiter verarbeitet und in "komplexere" und rechenaufwendige Prozeduren geleitet.
Ein bisschen Smalltalk quasi