public void StartDatabaseManagerServer() { DatabaseNetworkManager.StartServer(); }
public void StartDatabaseManagerClient() { DatabaseNetworkManager.StartClient(); }
private void Awake() { if (Singleton != null) { Destroy(gameObject); return; } DontDestroyOnLoad(gameObject); Singleton = this; // Always accept SSL ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback((sender, certificate, chain, policyErrors) => { return(true); }); CacheLogGUI.enabled = false; #if UNITY_STANDALONE && !CLIENT_BUILD GameInstance gameInstance = FindObjectOfType <GameInstance>(); gameInstance.onGameDataLoaded = OnGameDataLoaded; if (!Application.isEditor) { // Json file read string configFilePath = "./config/serverConfig.json"; Dictionary <string, object> jsonConfig = new Dictionary <string, object>(); Logging.Log(ToString(), "Reading config file from " + configFilePath); if (File.Exists(configFilePath)) { Logging.Log(ToString(), "Found config file"); string dataAsJson = File.ReadAllText(configFilePath); jsonConfig = Json.Deserialize(dataAsJson) as Dictionary <string, object>; } // Prepare data string[] args = Environment.GetCommandLineArgs(); // Android fix if (args == null) { args = new string[0]; } // Database option index int dbOptionIndex; if (ConfigReader.ReadArgs(args, ARG_DATABASE_OPTION_INDEX, out dbOptionIndex, -1) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_DATABASE_OPTION_INDEX, out dbOptionIndex, -1)) { DatabaseNetworkManager.SetDatabaseByOptionIndex(dbOptionIndex); } // Active WebSockets bool useWebSocket = ConfigReader.IsArgsProvided(args, ARG_USE_WEB_SOCKET); if (useWebSocket || ConfigReader.ReadConfigs(jsonConfig, CONFIG_USE_WEB_SOCKET, out useWebSocket)) { this.useWebSocket = useWebSocket; } CentralNetworkManager.useWebSocket = UseWebSocket; MapSpawnNetworkManager.useWebSocket = UseWebSocket; MapNetworkManager.useWebSocket = UseWebSocket; ChatNetworkManager.useWebSocket = UseWebSocket; // Central network address string centralNetworkAddress; if (ConfigReader.ReadArgs(args, ARG_CENTRAL_ADDRESS, out centralNetworkAddress, "localhost") || ConfigReader.ReadConfigs(jsonConfig, CONFIG_CENTRAL_ADDRESS, out centralNetworkAddress, "localhost")) { mapSpawnNetworkManager.centralNetworkAddress = centralNetworkAddress; mapNetworkManager.centralNetworkAddress = centralNetworkAddress; chatNetworkManager.centralNetworkAddress = centralNetworkAddress; } // Central network port int centralNetworkPort; if (ConfigReader.ReadArgs(args, ARG_CENTRAL_PORT, out centralNetworkPort, 6000) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_CENTRAL_PORT, out centralNetworkPort, 6000)) { centralNetworkManager.networkPort = centralNetworkPort; mapSpawnNetworkManager.centralNetworkPort = centralNetworkPort; mapNetworkManager.centralNetworkPort = centralNetworkPort; chatNetworkManager.centralNetworkPort = centralNetworkPort; } // Central max connections int centralMaxConnections; if (ConfigReader.ReadArgs(args, ARG_CENTRAL_MAX_CONNECTIONS, out centralMaxConnections, 1100) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_CENTRAL_MAX_CONNECTIONS, out centralMaxConnections, 1100)) { centralNetworkManager.maxConnections = centralMaxConnections; } // Machine network address, will be set to map spawn / map / chat string machineNetworkAddress; if (ConfigReader.ReadArgs(args, ARG_MACHINE_ADDRESS, out machineNetworkAddress, "localhost") || ConfigReader.ReadConfigs(jsonConfig, CONFIG_MACHINE_ADDRESS, out machineNetworkAddress, "localhost")) { mapSpawnNetworkManager.machineAddress = machineNetworkAddress; mapNetworkManager.machineAddress = machineNetworkAddress; chatNetworkManager.machineAddress = machineNetworkAddress; } // Map spawn network port int mapSpawnNetworkPort; if (ConfigReader.ReadArgs(args, ARG_MAP_SPAWN_PORT, out mapSpawnNetworkPort, 6001) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_MAP_SPAWN_PORT, out mapSpawnNetworkPort, 6001)) { mapSpawnNetworkManager.networkPort = mapSpawnNetworkPort; } // Map spawn max connections int mapSpawnMaxConnections; if (ConfigReader.ReadArgs(args, ARG_MAP_SPAWN_MAX_CONNECTIONS, out mapSpawnMaxConnections, 1100) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_MAP_SPAWN_MAX_CONNECTIONS, out mapSpawnMaxConnections, 1100)) { mapSpawnNetworkManager.maxConnections = mapSpawnMaxConnections; } // Map spawn exe path string spawnExePath; if (ConfigReader.ReadArgs(args, ARG_SPAWN_EXE_PATH, out spawnExePath, "./Build.exe") || ConfigReader.ReadConfigs(jsonConfig, CONFIG_SPAWN_EXE_PATH, out spawnExePath, "./Build.exe")) { mapSpawnNetworkManager.exePath = spawnExePath; } // Map spawn in batch mode bool notSpawnInBatchMode = ConfigReader.IsArgsProvided(args, ARG_NOT_SPAWN_IN_BATCH_MODE); if (notSpawnInBatchMode || ConfigReader.ReadConfigs(jsonConfig, CONFIG_NOT_SPAWN_IN_BATCH_MODE, out notSpawnInBatchMode)) { mapSpawnNetworkManager.notSpawnInBatchMode = notSpawnInBatchMode; } // Map spawn start port int spawnStartPort; if (ConfigReader.ReadArgs(args, ARG_SPAWN_START_PORT, out spawnStartPort, 8001) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_SPAWN_START_PORT, out spawnStartPort, 8001)) { mapSpawnNetworkManager.startPort = spawnStartPort; } // Spawn maps List <string> spawnMapIds; if (ConfigReader.ReadArgs(args, ARG_SPAWN_MAPS, out spawnMapIds, new List <string>()) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_SPAWN_MAPS, out spawnMapIds, new List <string>())) { spawningMapIds = spawnMapIds; } // Map network port int mapNetworkPort; if (ConfigReader.ReadArgs(args, ARG_MAP_PORT, out mapNetworkPort, 6002) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_MAP_PORT, out mapNetworkPort, 6002)) { mapNetworkManager.networkPort = mapNetworkPort; } // Map max connections int mapMaxConnections; if (ConfigReader.ReadArgs(args, ARG_MAP_MAX_CONNECTIONS, out mapMaxConnections, 1100) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_MAP_MAX_CONNECTIONS, out mapMaxConnections, 1100)) { mapNetworkManager.maxConnections = mapMaxConnections; } // Map scene name string mapId = string.Empty; if (ConfigReader.ReadArgs(args, ARG_MAP_ID, out mapId, string.Empty) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_MAP_ID, out mapId)) { startingMapId = mapId; } // Instance Id string instanceId = string.Empty; if (ConfigReader.ReadArgs(args, ARG_INSTANCE_ID, out instanceId, string.Empty)) { mapNetworkManager.MapInstanceId = instanceId; } // Instance Warp Position float instancePosX, instancePosY, instancePosZ; if (ConfigReader.ReadArgs(args, ARG_INSTANCE_POSITION_X, out instancePosX, 0f) && ConfigReader.ReadArgs(args, ARG_INSTANCE_POSITION_Y, out instancePosY, 0f) && ConfigReader.ReadArgs(args, ARG_INSTANCE_POSITION_Z, out instancePosZ, 0f)) { mapNetworkManager.MapInstanceWarpToPosition = new Vector3(instancePosX, instancePosY, instancePosZ); } // Instance Warp Override Rotation, Instance Warp Rotation mapNetworkManager.MapInstanceWarpOverrideRotation = ConfigReader.IsArgsProvided(args, ARG_INSTANCE_OVERRIDE_ROTATION); float instanceRotX, instanceRotY, instanceRotZ; if (mapNetworkManager.MapInstanceWarpOverrideRotation && ConfigReader.ReadArgs(args, ARG_INSTANCE_ROTATION_X, out instanceRotX, 0f) && ConfigReader.ReadArgs(args, ARG_INSTANCE_ROTATION_Y, out instanceRotY, 0f) && ConfigReader.ReadArgs(args, ARG_INSTANCE_ROTATION_Z, out instanceRotZ, 0f)) { mapNetworkManager.MapInstanceWarpToRotation = new Vector3(instanceRotX, instanceRotY, instanceRotZ); } // Chat network port int chatNetworkPort; if (ConfigReader.ReadArgs(args, ARG_CHAT_PORT, out chatNetworkPort, 6003) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_CHAT_PORT, out chatNetworkPort, 6003)) { chatNetworkManager.networkPort = chatNetworkPort; } // Chat max connections int chatMaxConnections; if (ConfigReader.ReadArgs(args, ARG_CHAT_MAX_CONNECTIONS, out chatMaxConnections, 1100) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_CHAT_MAX_CONNECTIONS, out chatMaxConnections, 1100)) { chatNetworkManager.maxConnections = chatMaxConnections; } // Database network address string databaseNetworkAddress; if (ConfigReader.ReadArgs(args, ARG_DATABASE_ADDRESS, out databaseNetworkAddress, "localhost") || ConfigReader.ReadConfigs(jsonConfig, CONFIG_DATABASE_ADDRESS, out databaseNetworkAddress, "localhost")) { databaseNetworkManager.networkAddress = databaseNetworkAddress; } // Database network port int databaseNetworkPort; if (ConfigReader.ReadArgs(args, ARG_DATABASE_PORT, out databaseNetworkPort, 6100) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_DATABASE_PORT, out databaseNetworkPort, 6100)) { databaseNetworkManager.networkPort = databaseNetworkPort; } // Database max connections int databaseNetworkMaxConnections; if (ConfigReader.ReadArgs(args, ARG_DATABASE_PORT, out databaseNetworkMaxConnections, 1000) || ConfigReader.ReadConfigs(jsonConfig, CONFIG_DATABASE_PORT, out databaseNetworkMaxConnections, 1000)) { databaseNetworkManager.maxConnections = databaseNetworkMaxConnections; } string logFileName = "Log"; bool startLog = false; bool tempStartServer; if (ConfigReader.IsArgsProvided(args, ARG_START_DATABASE_SERVER) || (ConfigReader.ReadConfigs(jsonConfig, CONFIG_START_DATABASE_SERVER, out tempStartServer) && tempStartServer)) { if (!string.IsNullOrEmpty(logFileName)) { logFileName += "_"; } logFileName += "Database"; startLog = true; startingDatabaseServer = true; } if (ConfigReader.IsArgsProvided(args, ARG_START_CENTRAL_SERVER) || (ConfigReader.ReadConfigs(jsonConfig, CONFIG_START_CENTRAL_SERVER, out tempStartServer) && tempStartServer)) { if (!string.IsNullOrEmpty(logFileName)) { logFileName += "_"; } logFileName += "Central"; startLog = true; startingCentralServer = true; } if (ConfigReader.IsArgsProvided(args, ARG_START_CHAT_SERVER) || (ConfigReader.ReadConfigs(jsonConfig, CONFIG_START_CHAT_SERVER, out tempStartServer) && tempStartServer)) { if (!string.IsNullOrEmpty(logFileName)) { logFileName += "_"; } logFileName += "Chat"; startLog = true; startingChatServer = true; } if (ConfigReader.IsArgsProvided(args, ARG_START_MAP_SPAWN_SERVER) || (ConfigReader.ReadConfigs(jsonConfig, CONFIG_START_MAP_SPAWN_SERVER, out tempStartServer) && tempStartServer)) { if (!string.IsNullOrEmpty(logFileName)) { logFileName += "_"; } logFileName += "MapSpawn"; startLog = true; startingMapSpawnServer = true; } if (ConfigReader.IsArgsProvided(args, ARG_START_MAP_SERVER) || (ConfigReader.ReadConfigs(jsonConfig, CONFIG_START_MAP_SERVER, out tempStartServer) && tempStartServer)) { if (!string.IsNullOrEmpty(logFileName)) { logFileName += "_"; } logFileName += "Map(" + mapId + ") Instance(" + instanceId + ")"; startLog = true; startingMapServer = true; } if (startLog) { CacheLogGUI.logFileName = logFileName; CacheLogGUI.enabled = true; } } else { DatabaseNetworkManager.SetDatabaseByOptionIndex(databaseOptionIndex); // Active WebSockets CentralNetworkManager.useWebSocket = UseWebSocket; MapSpawnNetworkManager.useWebSocket = UseWebSocket; MapNetworkManager.useWebSocket = UseWebSocket; ChatNetworkManager.useWebSocket = UseWebSocket; if (startDatabaseOnAwake) { startingDatabaseServer = true; } if (startCentralOnAwake) { startingCentralServer = true; } if (startChatOnAwake) { startingChatServer = true; } if (startMapSpawnOnAwake) { startingMapSpawnServer = true; } if (startMapOnAwake) { // If run map-server, don't load home scene (home scene load in `Game Instance`) startingMapId = startingMap.Id; startingMapServer = true; } } #endif }