So Leute, nun habe ich es versucht mal so umzusetzen.
Meine TClientInfo Klasse sieht nun so aus
Delphi-Quellcode:
TClientInfo =
class(TObject)
Thread: TIdContext;
Email:
string;
GUID:
string;
Nickname:
string;
IP:
string;
LoggedIn: Boolean;
LogonTime:
string;
Send: boolean;
SendMode:
String;
SendTo:
string;
end;
Jetzt kommt eine Anfrage von AContext im OnExecute Ereignis. Die Nachricht soll an eine bestimmte E-Mail Adresse gehen, welche ja in TClientInfo erfasst wurde. Alle Clients die sich verbinden, werden in eine Objektliste FCLients gespeichert.
Wie sende ich nun eine Nachricht an den Client mit einer bestimmten E-Mail Adresse?
Habe es mal so versucht..
Delphi-Quellcode:
...
found := false;
for I := 0 to FCLients.Count - 1 do begin
BClient := TClientInfo(FClients.Items[I]);
if BClient.Email = request_param2 then begin
// Nachricht senden...
found := true;
BClient.Thread.Connection.IOHandler.WriteLn('RECV TEXT '+ request_param3);
end;
end;
...
So richtig funktionieren tut das aber leider nicht. Die erste Nachricht wird gesendet... und dann passiert nur noch Kuddelmuddel. Der eine Client sendet was und empfängt es selber, dann bekommt ein anderer Client die Meldungen vom Server zurück. Verstehe nur noch Bahnhof.