Open jvisenti opened 3 years ago
Hey, sorry for the late reply here!
What version of Unity are you running? Can you try running this with IL2CPP?
The Mono Unity ships with is absolutely awful and has broken and half implemented all around Sockets/TLS so I'm not all that surprised to be honest. I thought I'd tested with Unity based servers but I might be imagining it.
The library this uses says it should support Mono so it's looking like it's probably a Unity Mono issue:
Both .NET 4.5+ and .NET Core 1.0+ are fully supported. Mono is supported on a best-effort basis. It should compile and run happily on Mono but this is not as heavily tested as Microsoft .NET stacks. If you have any issues using the Nuget package or compiling this code with .NET, .NET Core, or Mono, please file a Github issue with details of the problem.
Unity 2020.2.1f1, API compatibility level .NET 4.x. I'm not sure whether an IL2CPP build would work, but the editor always uses Mono for play mode. I wouldn't be surprised if the problem were specific to Unity Mono 😞
Ugh. I'll try and get a work around sussed out at some point, it might be possible to disable TLS (not great, but not terrible if you're in a VPC etc.) or masybe even submit a PR to the library to fix their Unity Mono compatibility.
Sorry about this!
Thanks for the response! I'll check back if anything changes. In the meantime I'll work on a server registry connector that doesn't use Consul.
I'm attempting to set up clustering for a DarkRift server hosted within a Unity application. This is the only officially supported server registry connector, so I figured I'd look into Consul and give it a shot. Unfortunately it looks like Consul is incompatible with Unity (or more specifically with Mono) due to unimplemented TLS methods:
If this connector isn't compatible with Unity, it would be helpful to add a note in the README and/or in the DarkRift clustering documentation.