You can use networking in WebGL in the following two ways:
Unity Multiplayer(previously UNet)
Note: UNet is a deprecated solution and a new Multiplayer and Networking Solution (MLAPI) is under development.
This page contains guidelines on how to use networking in WebGL.
If you send a web request to a server other than the one that hosts the Unity content, the server you’re sending it to must authorise the Unity content.
To access cross-domain web resources in WebGL, the server you are trying to access needs to use cross-origin resource sharing (CORS) to authorize cross-domain web resources.
If you try to access content using UnityWebRequest, and the remote server does not have CORS set up or configured correctly, an error like the following appears in the browser console:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://myserver.com/. This can be fixed by moving the resource to the same domain or enabling CORS.
The server needs to add Access-Control headers to the http responses it sends out, to indicate which web pages have permission to read that information from a web browser.
For a demonstration of how to add Access-Control headers that allow Unity WebGL to access resources on a web server from any origin, see the following example. This example includes common request headers and allows the GET, POST or OPTIONS methods:
"Access-Control-Allow-Credentials": "true", "Access-Control-Allow-Headers": "Accept, X-Access-Token, X-Application-Name, X-Request-Sent-Time", "Access-Control-Allow-Methods": "GET, POST, OPTIONS", "Access-Control-Allow-Origin": "*",
Do not use code that blocks a UnityWebReqest download, like this:
You cannot block the thread to wait for a UnityWebRequest download to finish otherwise your application freezes. Because WebGL is single threaded, and the