I haven't found relevant topic on last few pages - please feel free to merge with another topic if my ctrl-f skipped something relevant :)
I'm writing a Unity networked game. Architecture-wise, clients connect to central server application (also Unity for now), which provides features like creating rooms etc. When players start a game, actual game process is started on server and starts listening for players, clients connect to it, everyone is happy.
However, there is one issue that bugs me for a longer time now - chat.
In theory, the easiest solution would be to solve problem using builtin Unity RPCs with a bit of data stored in MySQL database. However, I'm afraid that would lead to inappropriate scaling of central server application, which already handles a lot of network traffic.
So - I'm thinking of using some XMPP (jabber) library or building custom TCP sockets based solution. Then, service could be located on a server machine, and in case of bad scaling - moved to separate machine.
Has anyone handled this issue before? Is there any rule of thumb regarding this?