コード例 #1
0
 // helper function to create local connection pair
 protected void CreateLocalConnectionPair(out LocalConnectionToClient connectionToClient, out LocalConnectionToServer connectionToServer)
 {
     connectionToClient = new LocalConnectionToClient();
     connectionToServer = new LocalConnectionToServer();
     connectionToClient.connectionToServer = connectionToServer;
     connectionToServer.connectionToClient = connectionToClient;
 }
コード例 #2
0
        public void SetUpConnections()
        {
            connectionToServer = new LocalConnectionToServer();
            connectionToClient = new LocalConnectionToClient();

            connectionToClient.connectionToServer = connectionToServer;
            connectionToServer.connectionToClient = connectionToClient;
        }
コード例 #3
0
        public void SetUp()
        {
            connectionToServer = new LocalConnectionToServer();
            connectionToClient = new LocalConnectionToClient();

            connectionToClient.connectionToServer = connectionToServer;
            connectionToServer.connectionToClient = connectionToClient;

            // set up server/client connections so message handling works
            NetworkClient.connection = connectionToServer;
            NetworkServer.connections[connectionToClient.connectionId] = connectionToClient;
        }
コード例 #4
0
        public void ShowForConnection()
        {
            // listen
            NetworkServer.Listen(1);
            Assert.That(NetworkServer.connections.Count, Is.EqualTo(0));

            // setup connections
            LocalConnectionToClient connectionToClient = new LocalConnectionToClient();
            LocalConnectionToServer connectionToServer = new LocalConnectionToServer();

            connectionToClient.connectionToServer = new LocalConnectionToServer();

            // setup NetworkServer/Client connections so messages are handled
            NetworkClient.connection = connectionToServer;
            NetworkServer.connections[connectionToClient.connectionId] = connectionToClient;

            // required for ShowForConnection
            connectionToClient.isReady            = true;
            connectionToClient.connectionToServer = new LocalConnectionToServer();

            // set a client handler
            int called = 0;

            void Handler(SpawnMessage _) => ++ called;

            NetworkClient.RegisterHandler <SpawnMessage>(Handler, false);
            NetworkServer.AddConnection(connectionToClient);

            // create a gameobject and networkidentity and some unique values
            CreateNetworked(out GameObject _, out NetworkIdentity identity);
            identity.connectionToClient = connectionToClient;

            // call ShowForConnection
            NetworkServer.ShowForConnection(identity, connectionToClient);

            // update local connection once so that the incoming queue is processed
            connectionToClient.connectionToServer.Update();

            // was it sent to and handled by the connection?
            Assert.That(called, Is.EqualTo(1));

            // it shouldn't send it if connection isn't ready, so try that too
            connectionToClient.isReady = false;
            NetworkServer.ShowForConnection(identity, connectionToClient);
            connectionToClient.connectionToServer.Update();
            // not 2 but 1 like before?
            Assert.That(called, Is.EqualTo(1));
        }
コード例 #5
0
        public void NoExternalConnectionsTest_WithHostOnly()
        {
            LocalConnectionToServer connectionToServer = new LocalConnectionToServer();
            LocalConnectionToClient connectionToClient = new LocalConnectionToClient();

            connectionToServer.connectionToClient = connectionToClient;
            connectionToClient.connectionToServer = connectionToServer;

            NetworkServer.SetLocalConnection(connectionToClient);
            NetworkServer.connections.Add(0, connectionToClient);

            Assert.That(NetworkServer.NoExternalConnections(), Is.True);
            Assert.That(NetworkServer.connections.Count, Is.EqualTo(1));

            NetworkServer.connections.Clear();
            NetworkServer.RemoveLocalConnection();
        }
コード例 #6
0
        public void SendToClientOfPlayer()
        {
            // listen
            NetworkServer.Listen(1);
            Assert.That(NetworkServer.connections.Count, Is.EqualTo(0));

            // setup connections
            LocalConnectionToClient connectionToClient = new LocalConnectionToClient();
            LocalConnectionToServer connectionToServer = new LocalConnectionToServer();

            connectionToClient.connectionToServer = new LocalConnectionToServer();

            // setup NetworkServer/Client connections so messages are handled
            NetworkClient.connection = connectionToServer;
            NetworkServer.connections[connectionToClient.connectionId] = connectionToClient;

            // set a client handler
            int called = 0;

            void Handler(TestMessage1 _) => ++ called;

            NetworkClient.RegisterHandler <TestMessage1>(Handler, false);
            NetworkServer.AddConnection(connectionToClient);

            // create a message
            TestMessage1 message = new TestMessage1 {
                IntValue = 1, DoubleValue = 2, StringValue = "3"
            };

            // create a gameobject and networkidentity
            CreateNetworked(out GameObject _, out NetworkIdentity identity);
            identity.connectionToClient = connectionToClient;

            // send it to that player
            identity.connectionToClient.Send(message);

            // update local connection once so that the incoming queue is processed
            connectionToClient.connectionToServer.Update();

            // was it send to and handled by the connection?
            Assert.That(called, Is.EqualTo(1));

            // clean up
            NetworkServer.Shutdown();
        }
コード例 #7
0
        public void NoConnectionsTest_WithHostAndConnection()
        {
            LocalConnectionToServer connectionToServer = new LocalConnectionToServer();
            LocalConnectionToClient connectionToClient = new LocalConnectionToClient();

            connectionToServer.connectionToClient = connectionToClient;
            connectionToClient.connectionToServer = connectionToServer;

            NetworkServer.SetLocalConnection(connectionToClient);
            NetworkServer.connections.Add(0, connectionToClient);
            NetworkServer.connections.Add(1, null);

            Assert.That(NetworkServer.NoConnections(), Is.False);
            Assert.That(NetworkServer.connections.Count, Is.EqualTo(2));

            NetworkServer.connections.Clear();
            NetworkServer.RemoveLocalConnection();
        }