![]() |
Messenger Datenhaltung der Teilnehmer in einer Sitzung
Hallo
Ich arbeite gerade an einem Messenger, der auch fortschritte macht aber es gibt da noch eine recht umfangreiche offene Frage. Mein Messenger wird zwar nie die Größenordnung von MSN, ICQ oder sogar QQ erreichen aber mich würde es schon interessieren wie es dort wohl laufen mag. Daten von A nach B zu senden ist ja noch "einfach" Dateiversand und Video/Audio stelle ich mir da auch noch einfacher vor im Gegensatz dazu wie man die Session Daten der Benutzer handhabt. Es sollte ja alles Server gestützt sein. Am Client selber wird nichts Im speicher gehalten sondern er Visualisiert ja eigentlich nur Packete vom Server. Aber wie schaut es denn mit solchen Funktionen aus wie Spam, Ignore, Block und der Erlaubnis jemandem etwas zu senden.
Wie würde man so etwas umsetzen? Bei einem kleinen Kreis von Benutzern wäre es denke ich möglich entweder alles für eine Session in den Speicher zu laden oder eben die Datenbank abzufragen. Wobei mir da ersteres besser gefällt, denn da müsste nicht bei jeder Nachricht die Datenbank abgefragt werden. Bei einer Größenordnug der oben genannten Messengern denke ich ist beides keine Umsetzung wert. Da hoher Speicherverbraucht auftreten würde oder aber die Datenbank das sicherlich nicht bewältigen würde. Mir kam da nun eine Mischung aus beiden Varianten in den Sinn. Die Daten werden mit einer Lebensdauer versehen und dann in den Speicher geladen bei erstmaligem Bedarf. Ein Client möchte eine Nachricht versenden. Der Server schaut nach ob es ein Beziehungsobjekt am Empfänger gibt und entsprechend ausgelesen. Daraufhin die Nachricht weitergeleitet oder eben nicht. Nach der Lebensdauer wird das Beziehungsobjekt aus dem speicher entfernt. Sollte jetzt erneut dieser Client eine Nachricht an den Empfänger senden, existiert kein Beziehungsobjekt und es wird in der Datenbank nachgefragt, anschließend das beziehungsobjekt wieder erstellt. Wie würdet ihr so etwas umsetzen wenn es um mehrere tausend Benutzer geht wie es bei QQ, MSN und ICQ der Fall ist. Mit freundlichem Gruß Cyber |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz