Esempio n. 1
0
        public void SQPClientServer_ServerInfoQuery_ServerInfoReceived()
        {
            var port     = 13337;
            var server   = new SQPServer(port);
            var endpoint = new IPEndPoint(IPAddress.Loopback, port);
            var client   = new SQPClient(endpoint);

            server.ServerInfoData.ServerName     = "Banana Boy Adventures";
            server.ServerInfoData.BuildId        = "2018-1";
            server.ServerInfoData.CurrentPlayers = 1;
            server.ServerInfoData.MaxPlayers     = 20;
            server.ServerInfoData.Port           = 1337;
            server.ServerInfoData.GameType       = "Capture the egg.";
            server.ServerInfoData.Map            = "Great escape to the see";

            client.StartInfoQuery();

            var iterations = 0;

            while (!(client.ClientState == SQPClient.SQPClientState.Success ||
                     client.ClientState == SQPClient.SQPClientState.Failure) &&
                   iterations++ < 1000)
            {
                server.Update();
                client.Update();
            }
            Assert.Less(iterations, 1000);
            Assert.AreEqual(client.ClientState, SQPClient.SQPClientState.Success);
        }
Esempio n. 2
0
        //[Test]
        public void SQPServer_ServerInfoQueryTest_ShouldWork()
        {
            var port   = 10001;
            var server = new SQPServer(port);

            server.ServerInfoData.ServerName     = "Banana Boy Adventures";
            server.ServerInfoData.BuildId        = "2018-1";
            server.ServerInfoData.CurrentPlayers = 1;
            server.ServerInfoData.MaxPlayers     = 20;
            server.ServerInfoData.Port           = 1337;
            server.ServerInfoData.GameType       = "Capture the egg.";
            server.ServerInfoData.Map            = "Great escape to the see";

            var start = NetworkUtils.stopwatch.ElapsedMilliseconds;

            while (true)
            {
                server.Update();

                /*
                 * if (server.IsDone)
                 * {
                 *  Debug.Log("ServerDone");
                 *  return;
                 * }
                 */

                if (NetworkUtils.stopwatch.ElapsedMilliseconds - start > 1000)
                {
                    Debug.Log("Listening");
                }
            }
        }
Esempio n. 3
0
        public void SQPClientServer_ServerInfoQuery_ServerInfoReceived()
        {
            var port     = 13337;
            var server   = new SQPServer(port);
            var endpoint = new IPEndPoint(IPAddress.Loopback, port);
            var client   = new SQPClient();

            var sid = server.ServerInfoData;

            sid.ServerName     = "Banana Boy Adventures";
            sid.BuildId        = "2018-1";
            sid.CurrentPlayers = 1;
            sid.MaxPlayers     = 20;
            sid.Port           = 1337;
            sid.GameType       = "Capture the egg.";
            sid.Map            = "Great escape to the see";

            server.ServerInfoData = sid;

            var handle = client.GetSQPQuery(endpoint);

            client.StartInfoQuery(handle);

            var iterations = 0;

            while (handle.m_State != SQPClient.SQPClientState.Idle && iterations++ < 1000)
            {
                server.Update();
                client.Update();
            }
            Assert.Less(iterations, 1000);

            Assert.AreEqual(handle.m_State, SQPClient.SQPClientState.Idle);
            Assert.AreEqual(handle.validResult, true);
            var sidRecieved = handle.m_ServerInfo.ServerInfoData;

            Assert.AreEqual(sidRecieved.BuildId, sid.BuildId);
            Assert.AreEqual(sidRecieved.CurrentPlayers, sid.CurrentPlayers);
            Assert.AreEqual(sidRecieved.GameType, sid.GameType);
            Assert.AreEqual(sidRecieved.Map, sid.Map);
            Assert.AreEqual(sidRecieved.MaxPlayers, sid.MaxPlayers);
            Assert.AreEqual(sidRecieved.Port, sid.Port);
            Assert.AreEqual(sidRecieved.ServerName, sid.ServerName);
        }
Esempio n. 4
0
        public virtual void Initialize(NetWorker networker, string masterServerHost = "", ushort masterServerPort = 15940, JSONNode masterServerRegisterData = null)
        {
            Networker = networker;
            networker.objectCreated         += CreatePendingObjects;
            Networker.binaryMessageReceived += ReadBinary;
            SetupObjectCreatedEvent();

            UnityObjectMapper.Instance.UseAsDefault();
            NetworkObject.Factory = new NetworkObjectFactory();

            if (Networker is IServer)
            {
                if (Settings.enableSQP)
                {
                    sqpServer = new SQPServer(Settings.SQPPort);
                }

                if (!string.IsNullOrEmpty(masterServerHost))
                {
                    _masterServerHost = masterServerHost;
                    _masterServerPort = masterServerPort;

                    RegisterOnMasterServer(masterServerRegisterData);
                }

                Networker.playerAccepted += PlayerAcceptedSceneSetup;

#if FN_WEBSERVER
                string pathToFiles = "fnwww/html";
                Dictionary <string, string> pages = new Dictionary <string, string>();
                TextAsset[] assets = Resources.LoadAll <TextAsset>(pathToFiles);
                foreach (TextAsset a in assets)
                {
                    pages.Add(a.name, a.text);
                }

                webserver = new MVCWebServer.ForgeWebServer(networker, pages);
                webserver.Start();
#endif
            }

            initialized = true;
        }