You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

107 lines
2.7 KiB

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
namespace Networking.Server {
[CreateAssetMenu(menuName = "Major Project/Networking/ServerObject", order = 150)]
public class ServerObject : ScriptableObject
{
#region Inspector Fields
[Header("Server Settings")]
[SerializeField]
private int Port;
[SerializeField]
private bool useWebSockets;
[SerializeField]
private int webPort;
[Header("References")]
[SerializeField]
private ClientList LoginHandler;
#endregion Inspector Fields
#region ReadOnly Variables
public NetworkServerSimple server { get; private set;}
private NetworkServerSimple webServer;
#endregion ReadOnly Variables
public void StartServer()
{
LoginHandler.ConnectedClients = new List<ClientData>();
LoginHandler.DisconnectedClients = new List<ClientData>();
//Debug.Log("Starting Server on " + port);
server = new NetworkServerSimple();
server.Configure(TransportConfigure.CreateConfigure(),32);
if (useWebSockets)
{
webServer = new NetworkServerSimple();
webServer.useWebSockets = true;
webServer.Configure(TransportConfigure.CreateConfigure(), 32);
}
LoginHandler.SetUp(this);
server.Listen(Port);
webServer.Listen(webPort);
}
public void ServerClose()
{
if (server != null)
server.Stop();
if (webServer != null)
webServer.Stop();
}
public void ServerUpdate()
{
if (server != null)
server.Update();
if (webServer != null)
webServer.Update();
}
public void RegisterHandler(short msgType,NetworkMessageDelegate handler)
{
if (server != null)
server.RegisterHandler(msgType, handler);
if (webServer != null)
webServer.RegisterHandler(msgType, handler);
}
public void UnregisterHandler(short msgType)
{
if (server != null)
server.UnregisterHandler(msgType);
if (webServer != null)
webServer.UnregisterHandler(msgType);
}
public void DisconnectAllConnections()
{
if (server != null)
server.DisconnectAllConnections();
if (webServer != null)
webServer.DisconnectAllConnections();
}
}
}