azerothcore

What is the relation between authserver, worldserver and client in AzerothCore?


There's a lot of documentation about directories, database, and modules on AzerothWiki. I think it's missing something about, what the purpose of the authserver, and the worldserver is in relation to the client, and to each other.

I've read about the World Update diff: How does the update diff work in AzerothCore?

From that I gather, it's the responsibility of the worldserver, to keep track of the state of the world. But how does anything then happen to the world?

I'm guessing the client is connecting to the authserver, and then sends updates to the database through the authserver, which in turn in sending the relevant state of the world back to the authserver, and then to the client? But that's just a guess.

I appreciate, that I could probably tediously comb through the source, but I think it would be a big help, to have some abstract idea about, what the purpose of each server is.

I've compiled and run woldserver and authserver on my localhost, and can connect to it, and play around.

I can see when I enter some gm commands in the client, that there's a corresponding log message in the worldserver console, and I have skimmed through the sourcecode, but that was not enough though, for me, to figure out how the communication flows, between the client and the servers.


Solution

  • The client sends an authentication request to the auth server. Once the auth server has verified the connection, it let's the user select a realm. As soon as the user selects a realm, the connection is passed on from the auth server to this realm's worldserver.

    The auth server is no longer involved and all communication happens only between the worldserver and the client.

    Only if the client requests to change the realm, the auth server is going to be involved again.