AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Messenger Datenhaltung der Teilnehmer in einer Sitzung
Thema durchsuchen
Ansicht
Themen-Optionen

Messenger Datenhaltung der Teilnehmer in einer Sitzung

Ein Thema von Cyberaxx · begonnen am 20. Jan 2011
Antwort Antwort
Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#1

Messenger Datenhaltung der Teilnehmer in einer Sitzung

  Alt 20. Jan 2011, 14:12
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.
  • Spam: Ein Client sendet zu viele Packete an den selben Client in einer Zeitspanne X. Der Server sollte ihm mitteilen das er
    spamt und bei weiteren vergehen den Server verlassen muss.
  • Ignore & Block: Ein Client sendet eine Nachricht an einen anderen Client. Dieser fühlt sich jedoch beläßtigt und nutzt eine
    der beiden Funktionen. Wenn dieser Client allerdings weiterhin Nachrichten an den betreffenden Client sendet so sollten die
    Nachrichten nicht mehr vom Server weiter transportiert werden.
  • Erlaubnis: Ebenso wie bei den anderen funtionen muss geprüft werden ob ein Client einem Anderen eine Nachricht senden darf.
    ist natürlich die gleiche Verfahren wie bei Ignore & Block nur eben anders herum.

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
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:52 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