Skip to content

Commit 7c849bf

Browse files
feat: use DTLS for relay (#485)
1 parent fdd969e commit 7c849bf

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/ClientGameNetPortal.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public async void StartClientUnityRelayModeAsync(string joinCode, Action<string>
190190
var (ipv4Address, port, allocationIdBytes, connectionData, hostConnectionData, key) = clientRelayUtilityTask.Result;
191191

192192
m_LobbyServiceFacade.UpdatePlayerRelayInfoAsync(allocationIdBytes.ToString(), joinCode, null, null);
193-
utp.SetRelayServerData(ipv4Address, port, allocationIdBytes, key, connectionData, hostConnectionData);
193+
utp.SetClientRelayData(ipv4Address, port, allocationIdBytes, key, connectionData, hostConnectionData, isSecure: true);
194194
}
195195
catch (Exception e)
196196
{

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/GameNetPortal.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public async void StartUnityRelayHost()
209209
m_LobbyServiceFacade.UpdatePlayerRelayInfoAsync(allocationIdBytes.ToString(), joinCode, null, null);
210210

211211
// we now need to set the RelayCode somewhere :P
212-
utp.SetRelayServerData(ipv4Address, port, allocationIdBytes, key, connectionData);
212+
utp.SetHostRelayData(ipv4Address, port, allocationIdBytes, key, connectionData, isSecure: true);
213213
}
214214
catch (Exception e)
215215
{

Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Linq;
23
using System.Threading.Tasks;
34
using UnityEngine;
45
using Unity.Services.Relay;
@@ -8,6 +9,7 @@ namespace Unity.Multiplayer.Samples.BossRoom
89
{
910
public static class UnityRelayUtilities
1011
{
12+
private const string kDtlsConnType = "dtls";
1113

1214
public static async
1315
Task<(string ipv4address, ushort port, byte[] allocationIdBytes, byte[] connectionData, byte[] key, string
@@ -37,7 +39,8 @@ public static async
3739
throw new Exception($"Creating join code request has failed: \n {exception.Message}");
3840
}
3941

40-
return (allocation.RelayServer.IpV4, (ushort)allocation.RelayServer.Port, allocation.AllocationIdBytes,
42+
var dtlsEndpoint = allocation.ServerEndpoints.First(e => e.ConnectionType == kDtlsConnType);
43+
return (dtlsEndpoint.Host, (ushort)dtlsEndpoint.Port, allocation.AllocationIdBytes,
4144
allocation.ConnectionData, allocation.Key, joinCode);
4245
}
4346

@@ -59,7 +62,8 @@ public static async
5962
Debug.Log($"host: {allocation.HostConnectionData[0]} {allocation.HostConnectionData[1]}");
6063
Debug.Log($"client: {allocation.AllocationId}");
6164

62-
return (allocation.RelayServer.IpV4, (ushort)allocation.RelayServer.Port, allocation.AllocationIdBytes,
65+
var dtlsEndpoint = allocation.ServerEndpoints.First(e => e.ConnectionType == kDtlsConnType);
66+
return (dtlsEndpoint.Host, (ushort)dtlsEndpoint.Port, allocation.AllocationIdBytes,
6367
allocation.ConnectionData, allocation.HostConnectionData, allocation.Key);
6468
}
6569
}

0 commit comments

Comments
 (0)