Einzelnen Beitrag anzeigen

generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#23

AW: Server UserListe abfragen

  Alt 19. Nov 2013, 09:21
^erst das Tutorial lesen!

Du musst dir wenn du einen Chat baust, etwas Gedanken über dein Protokoll und die Zustände der Verbindungen Gedanken machen.
Die eigentliche Verbindung/Connection ist ja nur der Transportkanal für Daten.

Vom Ablauf:
Der Client muss sich verbinden.
Der Server lässt die Verbindung zu und merkt sich (z.B. via statemachine) in welche Zustand die Verbindung ist. Das ist derzeit nicht angemeldet bzw. Gast.
Nun schickt der Client Benutzer und Passwort. Der Server prüft es bei Fehler wird der Client über die nicht erfolgreiche Anmeldung informiert. Ist es erfolgreich, dann muss der Zustand der Verbindung auf Angemeldet umgeschaltet werden und ggf. der Benutzername mit der Verbindung zusammen gespeichert werden.
Wenn das mehrere Clients machen, dann hast du deine Benutzerliste.

Wenn nun eine Chat-Nachricht kommt, dann muss diese weitergeleitet werden, wenn der Sender den angemeldeten Zustand hat. Die Weiterleitung an aller verbundenen Clients (so können Gäste mitlesen, aber nicht schreiben).

Wird eine Verbindung getrennt, dann muss der Benutzer aus der Benutzer-Verbindungsliste entfernt werden.

Persönliche Nachrichten lassen sich auch schreiben, in dem in der Nachricht ein Empfänger ist. Dann muss nur durch die Verbindungsliste gegangen werden und dann an jede (mehrere!) die dem Benutzer gehört, die Nachricht schicken.

Also wie soll dein Protokoll zur Steuerung (Anmelden, Abmelden, Persönliche Nachrichten, Nachrichten an Raum, Passwort-Ändern, Benutzer-Erstellen etc.) aussehen.
Wie soll eine Nachricht aussehen, denn diese ist ja auch nur ein Container, welcher durch den Datenkanal geschickt wird. Hat diese wie eine Email Absender/Empfänger oder wird das auf Protokoll-Ebene entschieden?
Wie überträgt man die Nachricht, dass dort enthalten Befehle nicht als Protokoll ausgewertet werden?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat