Hallo, ich habe folgendes Problem mit NIO:
Ich möchte gerne für jeden Client der zum Server eine Verbindung hat ein Referenz Objekt haben, in der Form von:
Davon möchte ich dann später zum Beispiel eine Liste haben in der ich folgende Referenzen habe:
Connectionid is einfach nur eine zahl die benutzt werden kann um eine verbindung zu identifizieren und soll später in Form von Username->UserID->ConnectionID->TrackerObjekt umgewandelt werden um an die in-/outQuerys zu gelangen…
Dies dient dazu, dass ich später einfach mit connectionsIds arbeiten möchte und dann der outQuery ein neues Objekt hinzufügen möchte und dass geht dann an den Client. Oder durch WorkerThreads die inQuery lese und die Nachrichten verarbeite / darauf regiere.
Das hat mehrere Vorteile: Ich brauche nur in diese querys schreiben, da nach kann der Worker der die Server Logik erledigt den Rest vergessen. Außerdem: keine Sync Probleme… was nicht in der OutQuery ist kann nicht geschrieben werden, es ist auch egal in welche Reihenfolge Daten ankommen.
Ich habe bis jetzt nur direkt auf Nachrichten des Clients antworten können…
Und meine Lösung ist die einzige von der Idee her die mir bis jetzt eingefallen ist um speziellen Nutzern auch Daten zu schicken wenn sie gerade nichts Nachfragen d.h. Ohne konkrete Anfrage auf die Daten…
Hat da jemand vielleicht eine Idee zu? Mir geht es hier nur darum eine solche Verknüpfung zu erzeugen… Wie schicke ich in NIO von außerhalb an einen speziellen Client? Ich hatte zuerst einmal die Idee die SelectionKey’s zu verknüpfen das hat aber nicht hin gehauen…
Best regards
Nightmares
Ich möchte gerne für jeden Client der zum Server eine Verbindung hat ein Referenz Objekt haben, in der Form von:
Java:
Class Tracker {
HastSet inQuery; // speichert alle Nachrichten die vom Client gelesen wurden
HastSet outQuery; // speichert alle Nachrichten die noch an den Client
// gesendet werden sollen
}
Connectionid is einfach nur eine zahl die benutzt werden kann um eine verbindung zu identifizieren und soll später in Form von Username->UserID->ConnectionID->TrackerObjekt umgewandelt werden um an die in-/outQuerys zu gelangen…
Java:
// connectionid zu Tracker Objekt
HastMap<Integer, Tracker> userconnections;
Das hat mehrere Vorteile: Ich brauche nur in diese querys schreiben, da nach kann der Worker der die Server Logik erledigt den Rest vergessen. Außerdem: keine Sync Probleme… was nicht in der OutQuery ist kann nicht geschrieben werden, es ist auch egal in welche Reihenfolge Daten ankommen.
Ich habe bis jetzt nur direkt auf Nachrichten des Clients antworten können…
Und meine Lösung ist die einzige von der Idee her die mir bis jetzt eingefallen ist um speziellen Nutzern auch Daten zu schicken wenn sie gerade nichts Nachfragen d.h. Ohne konkrete Anfrage auf die Daten…
Hat da jemand vielleicht eine Idee zu? Mir geht es hier nur darum eine solche Verknüpfung zu erzeugen… Wie schicke ich in NIO von außerhalb an einen speziellen Client? Ich hatte zuerst einmal die Idee die SelectionKey’s zu verknüpfen das hat aber nicht hin gehauen…
Best regards
Nightmares