Beispiel #1
0
        public Server(
            SteamSockets transport,
            int maxConnections,
            uint steamAppID,
            SteamServerInit init,
            SteamSockets.SocketMode socketMode,
            string serverName
            )
        {
            if (transport.debug)
            {
                Debug.Log($"SteamSockets.Server: Starting");
            }
            networkPort = init.GamePort;
            SteamServer.Init(steamAppID, init, false);
            SteamServer.ServerName = serverName;
            if (String.IsNullOrEmpty(transport.gsToken))
            {
                Debug.Log($"No gsToken provided, logging on anonymously");
                SteamServer.LogOnAnonymous();
            }
            else
            {
                Debug.Log($"Logging on with gstoken");
                // Todo: Add SteamServer.LogOn(gsToken); when Facepunch.Steamworks supports it
            }
            if (transport.debug)
            {
                Debug.Log($"Creating socket manager ({socketMode})");
            }
            switch (socketMode)
            {
            case SteamSockets.SocketMode.P2P:
                socketManager = SteamNetworkingSockets.CreateRelaySocket <FPSocketManager>();
                break;

            case SteamSockets.SocketMode.UDP:
                socketManager = SteamNetworkingSockets.CreateNormalSocket <FPSocketManager>(NetAddress.AnyIp(networkPort));
                break;
            }
            socketManager.transport = transport;
        }
Beispiel #2
0
 public void Shutdown()
 {
     socketManager.Close();
     socketManager = null;
 }