Hello,
I’m having a double issue when I try to use Relay, I show you my two methods:
public async void CreateRelay()
{
try
{
Allocation allocation = await RelayService.Instance.CreateAllocationAsync(2);
string joinCode = await RelayService.Instance.GetJoinCodeAsync(allocation.AllocationId);
RelayServerData relayServerData = new RelayServerData(allocation, "dtls");
NetworkManager.Singleton.GetComponent<UnityTransport>().SetRelayServerData(relayServerData);
Debug.Log("TestRelay --> join code " + joinCode);
codeToShow.text = joinCode;
NetworkManager.Singleton.StartHost();
SetPlayerID();
}
catch (RelayServiceException e)
{
Debug.Log(e.Message);
}
}
public async void JoinCode()
{
try
{
string joinCode = codeToRetrieve.text;
Debug.Log("joined with this code : " + joinCode);
JoinAllocation joinAllocation = await RelayService.Instance.JoinAllocationAsync(joinCode);
RelayServerData relayServerData = new RelayServerData(joinAllocation, "dtls");
NetworkManager.Singleton.GetComponent<UnityTransport>().SetRelayServerData(relayServerData);
NetworkManager.Singleton.StartClient();
SetPlayerID();
}
catch (RelayServiceException e)
{
Debug.Log(e.Message);
}
}
I created two buttons on UI, one call CreateRelay when pressed, the second read an InputField (the inputfield is linked by the variable “codeToRetrieve”) and actually the Debug.Log show me the same code I insert.
I create the relay and it connects the game, but when I try to connect the client (the second player), I get this error (my first issue):
Bad Request: invalid request schema or decoding failure
UnityEngine.Debug:Log (object)
Assets.Scripts.Lobby.TestRelay/d__4:MoveNext () (at Assets/Scripts/Lobby/TestRelay.cs:71)
System.Runtime.CompilerServices.AsyncTaskMethodBuilder1<Unity.Services.Relay.Models.JoinAllocation>:SetException (System.Exception) Unity.Services.Relay.WrappedRelayService/<JoinAllocationAsync>d__8:MoveNext () (at Library/PackageCache/com.unity.services.relay@1.0.5/Runtime/SDK/WrappedRelayService.cs:171) System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1<Unity.Services.Relay.Response1<Unity.Services.Relay.Models.JoinResponseBody>>:SetException (System.Exception) Unity.Services.Relay.Apis.RelayAllocations.RelayAllocationsApiClient/<JoinRelayAsync>d__9:MoveNext () (at Library/PackageCache/com.unity.services.relay@1.0.5/Runtime/Apis/RelayAllocationsApi.cs:186) System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1<Unity.Services.Relay.Http.HttpClientResponse>:SetResult (Unity.Services.Relay.Http.HttpClientResponse)
Unity.Services.Relay.Http.HttpClient/d__1:MoveNext () (at Library/PackageCache/com.unity.services.relay@1.0.5/Runtime/Http/HttpClient.cs:41)
System.Runtime.CompilerServices.AsyncTaskMethodBuilder1<Unity.Services.Relay.Http.HttpClientResponse>:SetResult (Unity.Services.Relay.Http.HttpClientResponse) Unity.Services.Relay.Http.HttpClient/<CreateWebRequestAsync>d__3:MoveNext () (at Library/PackageCache/com.unity.services.relay@1.0.5/Runtime/Http/HttpClient.cs:56) System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1<Unity.Services.Relay.Http.HttpClientResponse>:SetResult (Unity.Services.Relay.Http.HttpClientResponse)
Unity.Services.Relay.Http.HttpClient/d__4:MoveNext () (at Library/PackageCache/com.unity.services.relay@1.0.5/Runtime/Http/HttpClient.cs:84)
System.Runtime.CompilerServices.AsyncTaskMethodBuilder1<Unity.Services.Relay.Http.HttpClientResponse>:SetResult (Unity.Services.Relay.Http.HttpClientResponse) Unity.Services.Relay.Http.HttpClient/<>c__DisplayClass4_0/<<CreateHttpClientResponse>b__0>d:MoveNext () (at Library/PackageCache/com.unity.services.relay@1.0.5/Runtime/Http/HttpClient.cs:81) System.Threading.Tasks.TaskCompletionSource
1<Unity.Services.Relay.Http.HttpClientResponse>:SetResult (Unity.Services.Relay.Http.HttpClientResponse)
Unity.Services.Relay.Http.UnityWebRequestHelpers/<>c__DisplayClass0_0:b__0 (UnityEngine.AsyncOperation) (at Library/PackageCache/com.unity.services.relay@1.0.5/Runtime/Http/UnityWebRequestHelpers.cs:34)
UnityEngine.AsyncOperation:InvokeCompletionEvent ()
The second issue is that after 30 seconds (sometime less) my WiFi connection drop down after I create a Relay
Every library is updated with new version (netcode and relay).
The unity transport is: Relay unity transport