Example #1
0
        /// <summary>
        ///     Creates the server.
        /// </summary>
        public void Create(NameValueCollection variables)
        {
            if (Server != null)
                throw new InvalidOperationException("The server has already been created! (Is CreateOnEnable enabled?)");
            
            if (configuration != null)
            {
                //Create spawn data from config
                ServerSpawnData spawnData = ServerSpawnData.CreateFromXml(XDocument.Parse(configuration.text), variables);

                //Inaccessible from xml, set from inspector
                spawnData.EventsFromDispatcher = eventsFromDispatcher;

                //Unity is broken, work around it...
                //This is an obsolete property but is still used if the user is using obsolete <server> tag properties
#pragma warning disable 0618
                spawnData.Server.UseFallbackNetworking = true;
#pragma warning restore 0618

                //Add types
                spawnData.PluginSearch.PluginTypes.AddRange(UnityServerHelper.SearchForPlugins());
                spawnData.PluginSearch.PluginTypes.Add(typeof(UnityConsoleWriter));

                //Create server
                Server = new DarkRiftServer(spawnData);
                Server.Start();
                enetListener = Server.NetworkListenerManager.GetNetworkListenersByType<EnetListenerPlugin>().First();
            }
            else
                Debug.LogError("No configuration file specified!");
        }
Example #2
0
        public void GivenIHaveARunningServer(string serverConfig)
        {
            NameValueCollection parameters = new NameValueCollection {
                { "port", GetFreePort().ToString() }
            };

            DarkRiftServer server = new DarkRiftServer(ServerSpawnData.CreateFromXml("Configurations/Server/" + serverConfig, parameters));

            server.StartServer();

            world.AddServer(server);

#if DEBUG
            // We've just requested a load of objects that wont be returned until we close
            // UDP receive TCP accept
            performanceSteps.ExpectedUnaccountedForSocketAsyncEventArgs += 2;
#endif
        }