ITransferManager interface.
Unlike regular game traffic, Robust does not implement an encryption layer for the WebSocket data. It is thus recommended that the game’s HTTP status API is hosted behind a reverse proxy which is providing TLS, as otherwise the traffic will be unsecured. We will assume you know how to configure your web server with SSL, or at least know how to handle yourself if you do not wish to encrypt the data.
Game server config
The main CVars are located here (Note this is a permalink, more CVars may exist by the time this page was written). The main one to worry about istransfer.http_endpoint, this needs to point to the servers HTTP API (The thing with the /status and /info if you ever queried that). In most cases this will be the same value as hub.server_url but instead replacing ss14:// with http:// and ss14s:// with https://, and appending the port number (by default, :1212).
You can set these directly on a live server by editing the CVars via the
sudo cvar command.Note only players connecting after you enable the http transfer system will actually be using high bandwith systems while the already connected players will stay on the lidgren fallback until they reconnect.Obviously for the changes to persist, you will need to also set it in your config.Reverse proxy configuration
Nginx example
WebSockets in nginx require you to pass theUpgrade and Connection headers, we follow nginx’s example config for WebSockets per their documentation.
Caddy example
Caddy should just automatically forward the right headers by just using the usualreverse_proxy directive.
Although be careful, as reloading the config will close active WebSockets connections by default (I am not sure why this is the default) which will cause your players to get disconnected from the server, so we recommend setting stream_timeout and stream_close_delay.