Hey guys I'm making a unity webGL build with websocketsharp, https://github.com/sta/websocket-sharp
Weird thing is it works fine when I run it from client, I can send and receive messages with nodeJS but when I upload the build to my server I get this error when I try to connect to the server
12/5/2021 6:53:40 PM|Fatal|.|System.Net.Sockets.SocketException (0x80004005): Could not resolve host 'mydomain.io' Desktop.loader.js:1 at System.Net.Dns.Error_11001 (System.String hostName) [0x00000] in <00000000000000000000000000000000>:0
here is how I am connecting in C#
ws = new WebSocket("wss://mydomain.io:8000"); ws.SetProxy("https://mydomain.io/server", "", "");
I have no idea how to debug this. Why would it work in the unity editor but not when I upload to the server? Is websocketssharp the best way to communicate with a nodeJS server?
CodePudding user response:
As far as I understand in general WebSocket
and networking .Net / c#
classes are not supported in WebGL. You would need to either do the networking on JavaScript
side or use UnityWebRequest
.
In particular from the linked asset you are using
It works with Unity Free, but there are some limitations:
- Security Sandbox of the Webplayer (The server is not available in Web Player)
- WebGL Networking (Not available in WebGL)
Why would it work in the unity editor but not when I upload to the server?
-> Because within the Unity Editor you are still executing the pre-compiled .Net
code on your standalone PC where these classes are fully supported. It isn't compiled into WebGL
until you actually build your project.