Example #1
0
        public static void Create(string serverTitle, string password, int maxPlayerCount)
        {
            UnityEngine.Network.InitializeSecurity();
            try
            {
                G.Sys.NetworkingManager_.password_       = password;
                G.Sys.NetworkingManager_.serverTitle_    = serverTitle;
                G.Sys.NetworkingManager_.maxPlayerCount_ = maxPlayerCount;

                G.Sys.GameData_.SetString("ServerTitleDefault", serverTitle);
                G.Sys.GameData_.SetInt("MaxPlayersDefault", maxPlayerCount);

                var ncError = UnityEngine.Network.InitializeServer(maxPlayerCount - 1, 32323, true);

                if (ncError == NetworkConnectionError.NoError)
                {
                    var eventArgs = new ServerCreatedEventArgs(serverTitle, password, maxPlayerCount);
                    ServerCreated?.Invoke(null, eventArgs);
                    return;
                }

                G.Sys.MenuPanelManager_.ShowError(ncError.ToString(), "Failed to start server");
            }
            catch (Exception ex)
            {
                Debug.LogError(ex.Message);
            }
        }
Example #2
0
        /// <summary>
        /// Creates an <see cref="IEtpServer"/> instance.
        /// </summary>
        /// <param name="webSocket">The websocket to create the server for.</param>
        /// <param name="etpVersion">The ETP version for the session.</param>
        /// <param name="encoding">The ETP encoding for the session.</param>
        /// <param name="headers">The websocket headers.</param>
        /// <returns>The created server.</returns>
        public IEtpServer CreateServer(IEtpServerWebSocket webSocket, EtpVersion etpVersion, EtpEncoding encoding, IDictionary <string, string> headers)
        {
            if (webSocket == null)
            {
                throw new ArgumentNullException(nameof(webSocket));
            }
            if (!IsEtpVersionSupported(etpVersion))
            {
                throw new ArgumentException($"Unsupported ETP version: {etpVersion.ToVersionString()}");
            }

            var server = CreateServerCore(webSocket, etpVersion, encoding, headers ?? new Dictionary <string, string>());

            Logger.Debug(Log("[{0}] Server created.", server.SessionKey));

            server.SessionClosed     += OnServerSessionClosed;
            Servers[server.SessionId] = server;

            ServerCreated?.Invoke(this, new EtpServerEventArgs(server));

            return(server);
        }
Example #3
0
        private void RunServersJob()
        {
            var servers = Server.GetServers().ToServers();

            foreach (var server in servers)
            {
                var createdDate      = TCAdmin.SDK.Misc.Dates.CurrentTimeZoneToUniversalTime(server.CreatedOn);
                var createdTimeSpan  = DateTime.UtcNow - createdDate;
                var modifiedDate     = TCAdmin.SDK.Misc.Dates.CurrentTimeZoneToUniversalTime(server.ModifiedOn);
                var modifiedTimeSpan = DateTime.UtcNow - modifiedDate;

                if (createdTimeSpan <= TimeSpan.FromSeconds(2))
                {
                    ServerCreated?.Invoke(server);
                }

                if (modifiedTimeSpan <= TimeSpan.FromSeconds(2))
                {
                    ServerModified?.Invoke(server);
                }
            }

            servers.Clear();
        }