Datenbank synchronisieren
Verfasst: Sonntag 12. November 2006, 04:47
Find ich ja lustig, dass Du in dem Forum jetzt neue Foren für so lustiges Zeug erstellt hast, Alex, wollte nämlich eh demnächst was in der Art posten.
Aber deswegen, mal gleich zu meinem ersten Sorgenkind. Geht um ein WoW-UI-Addon, das mir etwas Kopfzerbrechen bereitet. Deswegen wollte ich vielleicht mal einfach ein Brainstorming darüber starten, wie man das Ding realisieren könnte. Nunja, beginnen wir mal mit den Spezifikationen.
Das Addon soll folgendes tun: es soll ausgewählte Gegenstände aus dem Inventar eines Charakters in eine Liste schreiben, und diese Liste soll allen angezeigt werden, die dieses Addon auch benutzen. Der Schwerpunkt liegt dabei auf der Synchronisation dieser Liste zwischen allen Nutzern des Addons. Wenn ein Benutzer eine solche Liste hat, sollen alle anderen sie auch von ihm bekommen, wenn 1) die Liste dieses Nutzers neuer ist als die der anderen und 2) unabhängig davon, ob dieser Nutzer der "Besitzer" dieser Liste ist oder nicht - der Besitzer der Liste muss also nicht unbedingt online sein, damit die Liste verbreitet wird.
Was geht?
Zum Synchronisieren steht ein Chat-Channel zur Verfügung, in dem alle momentan eingeloggten Benutzer drin sind, den sie aber nicht sehen können - nur das Addon bekommt davon etwas mit. Dabei gibt es folgende Einschränkungen zu beachten:
1) Es können nur normale, lesbare Zeichen (Buchstaben, Nummern, das "normale" Zeug eben) verschickt werden.
2) Eine Nachricht in diesem Channel hat eine maximale Länge von ca. 250 Zeichen.
3) Zwischen den einzelnen Nachrichten müssen kleinere Pausen gemacht werden (Sekundenbruchteile), um zu verhinden, dass die Nachrichten wegen "Spammings" rausgefiltert werden.
4) Die Daten der Liste lassen sich ohne Probleme in lesbare Zeichen und zurück umwandeln.
Was gibt es sonst noch für Randbedingungen?
1) Die Anzahl der Nachrichten über den Channel sollte möglichst gering sein, um den Channel nicht unnötig zu belasten, weil dieser auch noch von anderen Addons benutzt wird.
2) Es kommen dauernd neue Benutzer dazu oder verlassen den Channel (durch Ein- oder Ausloggen).
3) Durch die Dauer einer Ãœbertragung (Pausen, s.o.), kann es passieren, dass ein Benutzer mitten im Synchronisationsvorgang ausloggt, und zwar beim Senden oder Empfangen.
Najo, ich glaube, das sind für den Anfang mal genug Infos, um sich darüber ein bisschen den Kopf zerbrechen zu können. Bevor ich hier noch irgendwas darüber schreibe, wie es im Moment funktioniert, würde ich gerne sehen, wie jemand anderes das machen würde, nur um mal einen alternativen Lösungsweg zu sehen.
Wäre für Vorschläge und Ideen sehr dankbar.
PS: Wen es weiter interessiert, es geht natürlich um GuildGadgets.
Aber deswegen, mal gleich zu meinem ersten Sorgenkind. Geht um ein WoW-UI-Addon, das mir etwas Kopfzerbrechen bereitet. Deswegen wollte ich vielleicht mal einfach ein Brainstorming darüber starten, wie man das Ding realisieren könnte. Nunja, beginnen wir mal mit den Spezifikationen.
Das Addon soll folgendes tun: es soll ausgewählte Gegenstände aus dem Inventar eines Charakters in eine Liste schreiben, und diese Liste soll allen angezeigt werden, die dieses Addon auch benutzen. Der Schwerpunkt liegt dabei auf der Synchronisation dieser Liste zwischen allen Nutzern des Addons. Wenn ein Benutzer eine solche Liste hat, sollen alle anderen sie auch von ihm bekommen, wenn 1) die Liste dieses Nutzers neuer ist als die der anderen und 2) unabhängig davon, ob dieser Nutzer der "Besitzer" dieser Liste ist oder nicht - der Besitzer der Liste muss also nicht unbedingt online sein, damit die Liste verbreitet wird.
Was geht?
Zum Synchronisieren steht ein Chat-Channel zur Verfügung, in dem alle momentan eingeloggten Benutzer drin sind, den sie aber nicht sehen können - nur das Addon bekommt davon etwas mit. Dabei gibt es folgende Einschränkungen zu beachten:
1) Es können nur normale, lesbare Zeichen (Buchstaben, Nummern, das "normale" Zeug eben) verschickt werden.
2) Eine Nachricht in diesem Channel hat eine maximale Länge von ca. 250 Zeichen.
3) Zwischen den einzelnen Nachrichten müssen kleinere Pausen gemacht werden (Sekundenbruchteile), um zu verhinden, dass die Nachrichten wegen "Spammings" rausgefiltert werden.
4) Die Daten der Liste lassen sich ohne Probleme in lesbare Zeichen und zurück umwandeln.
Was gibt es sonst noch für Randbedingungen?
1) Die Anzahl der Nachrichten über den Channel sollte möglichst gering sein, um den Channel nicht unnötig zu belasten, weil dieser auch noch von anderen Addons benutzt wird.
2) Es kommen dauernd neue Benutzer dazu oder verlassen den Channel (durch Ein- oder Ausloggen).
3) Durch die Dauer einer Ãœbertragung (Pausen, s.o.), kann es passieren, dass ein Benutzer mitten im Synchronisationsvorgang ausloggt, und zwar beim Senden oder Empfangen.
Najo, ich glaube, das sind für den Anfang mal genug Infos, um sich darüber ein bisschen den Kopf zerbrechen zu können. Bevor ich hier noch irgendwas darüber schreibe, wie es im Moment funktioniert, würde ich gerne sehen, wie jemand anderes das machen würde, nur um mal einen alternativen Lösungsweg zu sehen.
Wäre für Vorschläge und Ideen sehr dankbar.
PS: Wen es weiter interessiert, es geht natürlich um GuildGadgets.