Zum Inhalt springen

Client / Server Datensätze synchronisieren ?


Aiun

Empfohlene Beiträge

hi,

wie Synchronisiere ich Datensätze in einer Client / Server-Anwendung ohne Primärschlüssel / identifier ?

um es konkreter zu beschreiben:

es geht um ein kleines Strategiespiel bei dem Einheiten bewegt werden und im Netzwerk-Spiel muss synchronisiert werden,

- wo die Einheiten sind (x,y)

- wem sie gehören (Referenz auf Objekt vom Typ Spieler)

- auf welche Einheit sie gerade Zielen oder an welchem Gebäude sie bauen

(Referenz auf ein Objekt vom Typ/Interface "Target")

Mein Problem: da ich keinen Primärschlüssel habe, weis der Client nicht, zu welcher Einheit die neuen Daten gehören oder ob es sich um eine neue Einheit handelt.

Jede Einheit ist schlicht eine Instanz die innerhalb eines java.util.Vector bzw. java.util.list registriert und hat Attribute die auf den Spieler sowie auf ihr Ziel (Gebäude, andere Einheit) gerichtet sind.

"Alle" Daten zu versenden klingt nach der Falschen lösung, da jeder Client den ganzen Objekt-Baum in jedem logic-Frame neu Aufbauen müsste.

Um nur die Änderungen zu übertragen müsste ich aber irgendwie die Einheiten identifizieren.

Wie würdet ihr das machen oder wie machen das Spiele meistens ?

danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

da ich keinen Primärschlüssel habe, weis der Client nicht, zu welcher Einheit die neuen Daten gehören oder ob es sich um eine neue Einheit handelt.

Wenn es um Datenbanken geht, dann stimmt Dein Modell nicht und somit würde ich das überarbeiten.

Aber irgendwie mischst Du Objekte und Begriffe aus der Datenbanktechnik. Es wäre vielleicht gut, wenn DU einmal ganz exakt definierst, worum es geht. Klar ist Du willst über das Netz Daten synchronisieren.

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

danke soweit, ich denke ich habe vorerst eine Lösung.

Und zwar wird der Server jedem Objekt (Spieler, Gebäude, Einheit ... whatever) eine ID geben, die nichts weiter ist als ein Integer.

Da nur der Server die ID verteilt wird sie wie ein Primärschlüssel funktionieren und die Objekte auf Server und Clients identifizieren.

Hätte ja sein können das es noch eine andere, mystische Methode gibt das Problem zu lösen ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und zwar wird der Server jedem Objekt (Spieler, Gebäude, Einheit ... whatever) eine ID geben, die nichts weiter ist als ein Integer.

Achte dabei darauf, dass keine Kollisionen entstehen. Ich persönlich würde das gar nicht machen, sondern jedes Objekt erhält automatisch bei der Erzeugung schon einen Schlüssel den Du verwenden kannst: Java 2 Platform SE v1.3.1: Class Object)

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...