I set-up a basic WebSocket server yesterday which will keep track of the players position in the world. I'm using WebSockets instead of a UDP connection since I'd like the game to work in the browser as well as on desktop and browsers don't have any way to make an unreliable connection to a server due to security concerns.
WebSockets aren't always great for multiplayer games since they're based on TCP which is a reliable protocol. That means all the data packets act as if they arrive in the order they were sent but when all you care about is the player's latest position you don't want to wait around for a late packet if you've already got the one after it.
Right now the plan is to have clients connect to the server using WebSockets and tell the server their location in the game world, the server can respond by sending what I'm calling "markers" back to the client. A marker is basically an object which contains a pointer to a file or the file itself as well as the location of said file in 3D space. In a Territory Definition Server these markers might be 3D models or images that the game can then display, but for this server the aim is to have each marker point to some character file which which the client will then load and and display. The server will send the client all markers near by and since WebSockets are a two way (full-duplex) protocol the connection can stay open and if a player moves close enough to a client the server can pro-actively push that player to the client. When a player is loaded it can listen to the server for position updates using the same WebSocket connection or establish a shared UDP connection on desktop.
The server uses the POCO C++ library which has a brilliant WebSocket class I've used in the past. In theory secure WebSockets should also work although I haven't tested them out yet. I'm also trying out the Conan package manager which I haven't used before but so far has made installing and managing dependencies a lot easier. On the Unity side I'm just using the Simple WebSockets asset by Unity which works for WebGL as well by using the browsers native WebSocket functions. Next I want to work out how to generate documentation from a Unity project and make it so multiple players can load in.