Skip to content

Commit

Permalink
fix: port network discovery
Browse files Browse the repository at this point in the history
  • Loading branch information
paulpach committed Jan 30, 2020
1 parent c5bdf98 commit d6a1154
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 8 deletions.
22 changes: 14 additions & 8 deletions Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public class NetworkDiscoveryHUD : MonoBehaviour

public NetworkDiscovery networkDiscovery;

public NetworkManager networkManager;

#if UNITY_EDITOR
void OnValidate()
{
Expand All @@ -23,18 +25,22 @@ void OnValidate()
UnityEditor.Events.UnityEventTools.AddPersistentListener(networkDiscovery.OnServerFound, OnDiscoveredServer);
UnityEditor.Undo.RecordObjects(new Object[] { this, networkDiscovery }, "Set NetworkDiscovery");
}

if (networkManager == null)
{
networkManager = GetComponent<NetworkManager>();
UnityEditor.Undo.RecordObjects(new Object[] { this }, "Set NetworkManager");

}
}
#endif

void OnGUI()
{
if (NetworkManager.singleton == null)
return;

if (NetworkServer.active || NetworkClient.active)
if (networkManager.server.active || networkManager.client.active)
return;

if (!NetworkClient.isConnected && !NetworkServer.active && !NetworkClient.active)
if (!networkManager.client.isConnected && !networkManager.server.active && !networkManager.client.active)
DrawGUI();
}

Expand All @@ -52,15 +58,15 @@ void DrawGUI()
if (GUILayout.Button("Start Host"))
{
discoveredServers.Clear();
NetworkManager.singleton.StartHost();
networkManager.StartHost();
networkDiscovery.AdvertiseServer();
}

// Dedicated server
if (GUILayout.Button("Start Server"))
{
discoveredServers.Clear();
NetworkManager.singleton.StartServer();
networkManager.StartServer();

networkDiscovery.AdvertiseServer();
}
Expand All @@ -83,7 +89,7 @@ void DrawGUI()

void Connect(ServerResponse info)
{
NetworkManager.singleton.StartClient(info.uri);
networkManager.StartClient(info.uri);
}

public void OnDiscoveredServer(ServerResponse info)
Expand Down
24 changes: 24 additions & 0 deletions Assets/Mirror/Runtime/Transport/Tcp/TcpTransport.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
// wraps Telepathy for use as HLAPI TransportLayer
using System;
using System.Collections.Generic;
using System.Net;
using UnityEngine;

namespace Mirror.Tcp
{
public class TcpTransport : Transport
{
// scheme used by this transport
// "tcp4" means tcp with 4 bytes header, network byte order
public const string Scheme = "tcp4";


protected Client client = new Client();
protected Server server = new Server();

Expand Down Expand Up @@ -117,5 +123,23 @@ public override string ToString()
}
return "";
}

public override Uri ServerUri()
{
UriBuilder builder = new UriBuilder();
builder.Scheme = Scheme;
builder.Host = Dns.GetHostName();
builder.Port = port;
return builder.Uri;
}

public override void ClientConnect(Uri uri)
{
if (uri.Scheme != Scheme)
throw new ArgumentException($"Invalid url {uri}, use {Scheme}://host:port instead", nameof(uri));

int serverPort = uri.IsDefaultPort ? port : uri.Port;
_ = client.ConnectAsync(uri.Host, port);
}
}
}

0 comments on commit d6a1154

Please sign in to comment.