Exemple #1
0
        public IEnumerator _HostObject()
        {
            using (MyServer server = new MyServer())
            {
                server.Start(localPort);

                using (MyClient client = new MyClient(server, null, false))
                {
                    client.Connect(localAddress, localPort);

                    foreach (var o in Wait())
                    {
                        yield return(null);
                    }

                    NetworkClient.RegisterObject <MySyncVarData>((id) =>
                    {
                        return(new MySyncVarData());
                    });
                    Assert.AreEqual(client.Objects.Count(), 0);
                    Assert.AreEqual(server.Objects.Count(), 0);

                    var serverData = server.CreateObject <MySyncVarData>();
                    Assert.AreEqual(server.Objects.Count(), 1);
                    Assert.IsNotNull(serverData);
                    foreach (var o in Wait())
                    {
                        yield return(null);
                    }

                    var clientData = client.Objects.FirstOrDefault();
                    Assert.IsNull(clientData);

                    server.AddObserver(serverData, server.Connections.First());
                    foreach (var o in Wait())
                    {
                        yield return(null);
                    }
                    clientData = client.Objects.FirstOrDefault();

                    Assert.IsTrue(object.ReferenceEquals(clientData, serverData));

                    server.DestroyObject(serverData);
                    Assert.AreEqual(server.Objects.Count(), 0);

                    foreach (var o in Wait())
                    {
                        yield return(null);
                    }
                    Assert.AreEqual(client.Objects.Count(), 0);
                }
            }
        }
Exemple #2
0
        public IEnumerator _DestroyObject()
        {
            using (MyServer server = new MyServer())
            {
                server.Start(localPort);

                using (MyClient client = new MyClient())
                {
                    client.Connect(localAddress, localPort);

                    NetworkClient.RegisterObject <MySyncVarData>((id) =>
                    {
                        return(new MySyncVarData());
                    });
                    Assert.AreEqual(client.Objects.Count(), 0);
                    Assert.AreEqual(server.Objects.Count(), 0);

                    var serverData = server.CreateObject <MySyncVarData>();
                    foreach (var o in Wait())
                    {
                        yield return(null);
                    }

                    server.AddObserver(serverData, server.Connections.First());
                    foreach (var o in Wait())
                    {
                        yield return(null);
                    }

                    server.DestroyObject(serverData);
                    Assert.AreEqual(server.Objects.Count(), 0);

                    foreach (var o in Wait())
                    {
                        yield return(null);
                    }
                    Assert.AreEqual(client.Objects.Count(), 0);
                }
            }
        }
Exemple #3
0
        protected override NetworkClient AcceptClient(TcpClient client, MessageBase extra)
        {
            var c = new MyClient(this, client.Client, true);

            return(c);
        }