Hi,
Ich Programmiere im Moment einen Socket Server um auf einer Internetseite Echtzeit Kommunikation zu ermöglichen.
Das Software Design der Serveranwendung habe ich mir so vorgestellt:
Für jeden Client wir ein Thread erzeugt damit, sollte ein Client einen Fehler verursachen er rausgeworfen wird ohne den Server zu crashen und um überhaupt mehrere Clients gleichzeitig zu handlen.
Es gibt 2 Möglichkeiten der Authentifizierung:
1. Normales Login (Für späteren Desktop Client benötigt)
2. Senden der Session Id
In beiden fällen wird die User Id aus einer
MySQL Datenbank abgefragt. Außerdem müssen Multi Logins möglich sein.
Jetzt aber das Problem: Möchte ein Nutzer dem anderen eine Nachricht senden dann gibt er die User Id des Empfängers an.
Wie organisiere ich das Intern? Ich muss auf einem möglichst elegantem weg von der UserId zu allen betreffenden Client Threads kommen.
Dabei sollten die Daten so abgelegt werden das sie auch nach einem Disconnect leicht zu entfernen sind und möglichst keine Lücken hinterlassen..
Hat jemand eine Idee?
PS: Idee:
http://www.delphipraxis.net/152262-a...ve-arrays.html
PPS: Angehängt ist meine aktuelle Code Basis (Lazarus Projekt)