Added better Transport config to allow for multiple hosts
This commit is contained in:
parent
3d06ad177d
commit
1d4cb9a347
@ -21,6 +21,18 @@ namespace MLAPI.Data
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public ushort ProtocolVersion = 0;
|
public ushort ProtocolVersion = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// The transport hosts the sever uses
|
||||||
|
/// </summary>
|
||||||
|
public List<TransportHost> ServerTransports = new List<TransportHost>()
|
||||||
|
{
|
||||||
|
new TransportHost()
|
||||||
|
{
|
||||||
|
Name = "UDP Socket",
|
||||||
|
Port = 7777,
|
||||||
|
Websockets = false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
/// <summary>
|
||||||
/// Channels used by the NetworkedTransport
|
/// Channels used by the NetworkedTransport
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<Channel> Channels = new List<Channel>();
|
public List<Channel> Channels = new List<Channel>();
|
||||||
@ -75,13 +87,13 @@ namespace MLAPI.Data
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int MaxConnections = 100;
|
public int MaxConnections = 100;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The port for the NetworkTransport to use
|
/// The port for the NetworkTransport to use when connecting
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Port = 7777;
|
public int ConnectPort = 7777;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The address to connect to
|
/// The address to connect to
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Address = "127.0.0.1";
|
public string ConnectAddress = "127.0.0.1";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The amount of seconds to wait for handshake to complete before timing out a client
|
/// The amount of seconds to wait for handshake to complete before timing out a client
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -128,14 +140,6 @@ namespace MLAPI.Data
|
|||||||
/// Wheter or not to enable scene switching
|
/// Wheter or not to enable scene switching
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool EnableSceneSwitching = false;
|
public bool EnableSceneSwitching = false;
|
||||||
/// <summary>
|
|
||||||
/// Wheter or not we should have an additional host that listens for WebSocket requests
|
|
||||||
/// </summary>
|
|
||||||
public bool UseWebsockets = false;
|
|
||||||
/// <summary>
|
|
||||||
/// The port the websocket host listens on
|
|
||||||
/// </summary>
|
|
||||||
public int WebsocketsPort = 7778;
|
|
||||||
|
|
||||||
private byte[] ConfigHash = null;
|
private byte[] ConfigHash = null;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
12
MLAPI/Data/TransportHost.cs
Normal file
12
MLAPI/Data/TransportHost.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace MLAPI.Data
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class TransportHost
|
||||||
|
{
|
||||||
|
public string Name = Guid.NewGuid().ToString().Replace("-", "");
|
||||||
|
public int Port = 7777;
|
||||||
|
public bool Websockets = false;
|
||||||
|
}
|
||||||
|
}
|
@ -73,6 +73,7 @@
|
|||||||
<Compile Include="Data\NetworkConfig.cs" />
|
<Compile Include="Data\NetworkConfig.cs" />
|
||||||
<Compile Include="Data\NetworkPool.cs" />
|
<Compile Include="Data\NetworkPool.cs" />
|
||||||
<Compile Include="Data\TrackedPointData.cs" />
|
<Compile Include="Data\TrackedPointData.cs" />
|
||||||
|
<Compile Include="Data\TransportHost.cs" />
|
||||||
<Compile Include="GlobalSuppressions.cs" />
|
<Compile Include="GlobalSuppressions.cs" />
|
||||||
<Compile Include="MonoBehaviours\Prototyping\NetworkedAnimator.cs" />
|
<Compile Include="MonoBehaviours\Prototyping\NetworkedAnimator.cs" />
|
||||||
<Compile Include="MonoBehaviours\Prototyping\NetworkedNavMeshAgent.cs" />
|
<Compile Include="MonoBehaviours\Prototyping\NetworkedNavMeshAgent.cs" />
|
||||||
|
@ -387,10 +387,13 @@ namespace MLAPI.MonoBehaviours.Core
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
HostTopology hostTopology = new HostTopology(cConfig, NetworkConfig.MaxConnections);
|
HostTopology hostTopology = new HostTopology(cConfig, NetworkConfig.MaxConnections);
|
||||||
NetworkTransport.AddHost(hostTopology, NetworkConfig.Port);
|
for (int i = 0; i < NetworkConfig.ServerTransports.Count; i++)
|
||||||
|
{
|
||||||
if(NetworkConfig.UseWebsockets)
|
if (NetworkConfig.ServerTransports[i].Websockets)
|
||||||
NetworkTransport.AddWebsocketHost(hostTopology, NetworkConfig.WebsocketsPort);
|
NetworkTransport.AddWebsocketHost(hostTopology, NetworkConfig.ServerTransports[i].Port);
|
||||||
|
else
|
||||||
|
NetworkTransport.AddHost(hostTopology, NetworkConfig.ServerTransports[i].Port);
|
||||||
|
}
|
||||||
|
|
||||||
_isServer = true;
|
_isServer = true;
|
||||||
_isClient = false;
|
_isClient = false;
|
||||||
@ -420,7 +423,7 @@ namespace MLAPI.MonoBehaviours.Core
|
|||||||
_isClient = true;
|
_isClient = true;
|
||||||
isListening = true;
|
isListening = true;
|
||||||
byte error;
|
byte error;
|
||||||
serverConnectionId = NetworkTransport.Connect(serverHostId, NetworkConfig.Address, NetworkConfig.Port, 0, out error);
|
serverConnectionId = NetworkTransport.Connect(serverHostId, NetworkConfig.ConnectAddress, NetworkConfig.ConnectPort, 0, out error);
|
||||||
Debug.LogWarning("MLAPI: Connection failed: " + ((NetworkError)error).ToString());
|
Debug.LogWarning("MLAPI: Connection failed: " + ((NetworkError)error).ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -444,7 +447,7 @@ namespace MLAPI.MonoBehaviours.Core
|
|||||||
_isClient = true;
|
_isClient = true;
|
||||||
isListening = true;
|
isListening = true;
|
||||||
byte error;
|
byte error;
|
||||||
serverConnectionId = NetworkTransport.Connect(serverHostId, NetworkConfig.Address, NetworkConfig.WebsocketsPort, 0, out error);
|
serverConnectionId = NetworkTransport.Connect(serverHostId, NetworkConfig.ConnectAddress, NetworkConfig.ConnectPort, 0, out error);
|
||||||
Debug.LogWarning("MLAPI: Connection failed: " + ((NetworkError)error).ToString());
|
Debug.LogWarning("MLAPI: Connection failed: " + ((NetworkError)error).ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -527,9 +530,13 @@ namespace MLAPI.MonoBehaviours.Core
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
HostTopology hostTopology = new HostTopology(cConfig, NetworkConfig.MaxConnections);
|
HostTopology hostTopology = new HostTopology(cConfig, NetworkConfig.MaxConnections);
|
||||||
NetworkTransport.AddHost(hostTopology, NetworkConfig.Port, null);
|
for (int i = 0; i < NetworkConfig.ServerTransports.Count; i++)
|
||||||
if (NetworkConfig.UseWebsockets)
|
{
|
||||||
NetworkTransport.AddWebsocketHost(hostTopology, NetworkConfig.WebsocketsPort);
|
if (NetworkConfig.ServerTransports[i].Websockets)
|
||||||
|
NetworkTransport.AddWebsocketHost(hostTopology, NetworkConfig.ServerTransports[i].Port);
|
||||||
|
else
|
||||||
|
NetworkTransport.AddHost(hostTopology, NetworkConfig.ServerTransports[i].Port);
|
||||||
|
}
|
||||||
|
|
||||||
_isServer = true;
|
_isServer = true;
|
||||||
_isClient = true;
|
_isClient = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user