Skip to content

Commit 3dd1985

Browse files
committed
feat: Added support for address reports
1 parent be60c82 commit 3dd1985

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

MLAPI/Transports/UNET/RelayTransport.cs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ private enum MessageType
1414
StartServer,
1515
ConnectToServer,
1616
Data,
17-
ClientDisconnect
17+
ClientDisconnect,
18+
AddressReport
1819
}
1920

2021
private static byte defaultChannelId;
@@ -28,6 +29,8 @@ private enum MessageType
2829
public static string RelayAddress { get; set; } = "127.0.0.1";
2930
public static ushort RelayPort { get; set; } = 8888;
3031

32+
public static event Action<IPEndPoint> OnRemoteEndpointReported;
33+
3134
public static int Connect(int hostId, string serverAddress, int serverPort, int exceptionConnectionId, out byte error)
3235
{
3336
if (!Enabled) return NetworkTransport.Connect(hostId, serverAddress, serverPort, exceptionConnectionId, out error);
@@ -294,6 +297,21 @@ private static NetworkEventType BaseReceive(NetworkEventType @event, int hostId,
294297

295298
switch (messageType)
296299
{
300+
case MessageType.AddressReport:
301+
{
302+
byte[] addressBytes = new byte[16];
303+
304+
for (int i = 0; i < addressBytes.Length; i++)
305+
addressBytes[i] = buffer[i];
306+
307+
ushort remotePort = (ushort)(((ushort)buffer[17]) |
308+
((ushort)buffer[18] << 8));
309+
310+
IPEndPoint remoteEndPoint = new IPEndPoint(new IPAddress(addressBytes), remotePort);
311+
312+
OnRemoteEndpointReported(remoteEndPoint);
313+
break;
314+
}
297315
case MessageType.ConnectToServer: // Connection approved
298316
{
299317
if (!isClient)

0 commit comments

Comments
 (0)