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); } } }
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); } } }
protected override NetworkClient AcceptClient(TcpClient client, MessageBase extra) { var c = new MyClient(this, client.Client, true); return(c); }