Hey Leute,
da ich des Öfteren mitbekomme, dass viele von euch diverse Begriffe wie Client, Server, Emulator und CMS falsch verwenden, habe ich mich entschlossen darüber zu schreiben, wie ein Habbo Retro eigentlich aufgebaut ist. Wenn irgendwas unklar ist, könnt ihr das gerne in diesem Thread posten.
1. Das CMS
Das CMS (Content Management System) ist das, was ihr seht, wenn ihr euch z.B. einloggt, registriert oder die täglichen News anseht. Es ist dafür zuständig, neue Nutzer zu der Datenbank hinzuzufügen und diese dann ggf. einzuloggen. Beim Aufrufen der Client Seite (2. Punkt) generiert es einen Code (SSO-Ticket = Single Sign-on Ticket), der dem User in der Datenbank zugeteilt wird. Dieser wird benötigt, damit der Emulator (3. Punkt) weiß, welcher User in das Hotel einchecken möchte. Dieser Code kann so aussehen, wie es der Entwickler möchte, solange er einzigartig bleibt.
2. Der Client
Der Client ist meist über die URL (/client) erreichbar und ist einer der wichtigsten Bestandsteile eines Habbo CMS, da sich dieser mit dem Emulator (3. Punkt) verbindet. In ihm ist immer eine Flash Datei eingebunden, die meist den Namen Habbo.swf trägt. Dieser Datei werden dann Parameter wie z.B. das SSO-Ticket (1. Punkt) übertragen. Die meisten Hotels nutzen für das Generieren dieser Einbinde-HTML-Codes vorgefertigte Javascript Funktionen (Das muss euch jetzt aber nicht besonders interessieren).. Der Client ist für alles zuständig, was euer Auge sehen kann, er zeigt die Bilder, die Texte und bewegt z.B. die Habbo Figuren. Wenn du die Seite aufrufst, werden zuerst Dateien wie z.B. "external_variables.txt" und "external_flash_texts.txt" geladen. Diese Dateien beinhalten konstante Informationen für den Client, für die der Emulator (3. Punkt) nicht benötigt wird. Während die Informationen in der Datei "external_variables.txt" eher für Einstellungen stehen, sind in "external_flash_texts.txt" nur Texte gespeichert, die später im Client benötigt werden (Dort sind oft Platzhalter wie z.B. %name% die mit Informationen ausgetauscht werden, welche vom Emulator kommen). Nachdem diese und weitere Dateien geladen wurden, verbindet sich der Client über eine IP-Adresse und einen Port mit dem Habbo Server (Emulator) und sendet dann anfangs das vom CMS generierte SSO-Ticket an den Server. Wenn alles klappt, kriegt der Client dann die Userdaten vom Emulator und kann dann Platzhalter wie %name% mit dem echten Usernamen ersetzen.
3. Der Server (Emulator)
Der Habbo Server, bei Habbo Retros auch Emulator genannnt, ist das was alle Nutzer im Hotel miteinander vernetzt. Er steht in keinem direkten Zusammenhang mit dem CMS und kann auch auf einem externen Server (andere IP als CMS Host) ausgeführt werden, jedoch muss die gleiche Datenbank verwendet werden. Er fängt an wenn alle Datenbankinformationen, die z.B. für den Katalog benötigt werden, geladen wurden auf Client Verbindungen zu warten. Diese können ihn dank der IP-Adresse und des Ports (Port muss einzigartig sein), der im Emulator in einer Konfiguration angegeben wurde, identifizieren und sich so mit ihm verbinden. Da auch mehrere Nutzer ins Hotel möchten, hört er nicht auf Verbindungen zu horchen, wenn sich ein Client verbunden hat. Da er mehrere Verbindungen gleichzeitig hält, kann er somit auch z.B. eine Chat Nachricht von Client 1 zu Client 2 schicken und andersrum.. Das läuft grob gesagt so ab, dass der Client eine Chat Nachricht an den Server schickt und dieser dann die Nachricht an alle anderen weiterschickt.. Dann verarbeiten die anderen Clients die Nachricht, die sie vom Server bekommen haben.
4. Die offiziellen Hotels
In den offiziellen Habbo Hotels funktioniert es fast genauso wie bei jedem Habbo Retro Hotel. Mit dem Unterschied, dass sie den Emulator auf mehrere Server verteilen. Vielleicht habt ihr euch schonmal den Quelltext des Clients eines offiziellen Hotels angesehen und bemerkt, dass dort 2 Ports eingetragen wurden.. Das sind ganz einfach 2 "verschiedene" Server. Der Client wählt dann zufällig aus, mit welchem er sich verbinden soll. Diese verschiedenen Server die Habbo nutzt sind die sogenannten Client Server. Neben diesen gibt es dann noch den Hauptserver, der die Client Server miteinander verbindet. Es funktioniert hier ähnlich wie bei den meisten Retro Emulatoren, nur dass hier die Verbindungen verteilt werden. Das wird gemacht, damit der eine Server nicht so belastet ist und es somit weniger Laggs im Hotel gibt / mehr User im Hotel gleichzeitig online sein können.. Diese Client Server können beliebig erweitert werden.
Cheers,
Steve Winfield