The notion of public/private repositories (with /_/ and /@/ URLs) is specific to the SAAS version of WorkAdventure.
It would be better to avoid leaking the organization/world/room structure of the private SAAS URLs inside the WorkAdventure Github project.
Rather than sending http://admin_host/api/map?organizationSlug=...&worldSlug=...&roomSlug=...., we are now sending /api/map&playUri=...
where playUri is the full URL of the current game.
This allows the backend to act as a complete router.
The front (and the pusher) will be able to completely ignore the specifics of URL building (with /@/ and /_/ URLs, etc...)
Those details will live only in the admin server, which is way cleaner (and way more powerful).
This way, if a user A blocks another user B, if user B refreshes the browser or leaves and re-enters the room, user B will still be blocked.
As a side effect, this allows us to completely remove the "sockets" property in the SocketManager on the Pusher.
* Public texture
- Front => Get texture when user connected on public method
- Front => Anonymous login will be make every connexion to get map details
- Pusher => `/anonymLogin` permit to get map details and public texture load in customize scene
* Improve texture local user
- Permit to keep previous texture get with 'register' link
* Texture public loading
- Texture will be load with Room class
- Fix issue on lazzy loading atttempt
* Remove async await useless
Some deployments might not be based on docker, and not on separate
hosts. In such cases, it would be useful to be able to configure the
port pusher listens on.
:) This allows spreading rooms on different API servers based on room name.
Note this does provide neither autoscaling nor high availability, but it provides some kind of load balancing.