private void ReceiveInformation() { WWW www = new WWW(URL_RECV); string topic = room_id; using (var subSocket = new NetMQ.Sockets.SubscriberSocket()) { subSocket.Options.ReceiveHighWatermark = 1000; subSocket.Connect(URL_RECV); subSocket.Subscribe(topic); //Console.WriteLine("Subscriber socket connecting..."); while (true) { var messageTopicReceived = subSocket.ReceiveFrameString(); var messageReceived = subSocket.ReceiveFrameString(); //Debug.Log(messageReceived); PlayerJson[] players = JsonHelper.FromJson <PlayerJson>(messageReceived); foreach (var playerData in players) { bool found = false; for (int i = 0; i < submarines.Count && !found; ++i) { if (submarines[i].GetId() == playerData.id) { submarines[i].SetPositionX(playerData.pos_x); submarines[i].SetPositionY(playerData.pos_y); found = true; } } for (int i = 0; i < divers.Count && !found; ++i) { if (divers[i].GetId() == playerData.id) { divers[i].SetPositionX(playerData.pos_x); divers[i].SetPositionY(playerData.pos_y); found = true; } } } } } }
public void ConnectBothSockets() { using (var pub = new PublisherSocket()) using (var sub = new SubscriberSocket()) { pub.Connect("pgm://224.0.0.1:5555"); sub.Connect("pgm://224.0.0.1:5555"); sub.Subscribe(""); pub.SendFrame("Hi"); bool more; Assert.AreEqual("Hi", sub.ReceiveFrameString(out more)); Assert.IsFalse(more); } }
public void UseInterface() { #if NETCOREAPP1_0 var hostEntry = Dns.GetHostEntryAsync(Dns.GetHostName()).Result; #else var hostEntry = Dns.GetHostEntry(Dns.GetHostName()); #endif string ip = hostEntry.AddressList .Where(addr => addr.AddressFamily == AddressFamily.InterNetwork) .Select(addr => addr.ToString()) .FirstOrDefault(); using (var pub = new PublisherSocket()) using (var sub = new SubscriberSocket()) { pub.Connect($"pgm://{ip};224.0.0.1:5555"); sub.Bind($"pgm://{ip};224.0.0.1:5555"); sub.Subscribe(""); pub.SendFrame("Hi"); bool more; Assert.AreEqual("Hi", sub.ReceiveFrameString(out more)); Assert.IsFalse(more); } }
public void SetPgmSettings() { const int MegaBit = 1024; const int MegaByte = 1024; using (var pub = new PublisherSocket()) using (var sub = new SubscriberSocket()) { pub.Options.MulticastHops = 2; pub.Options.MulticastRate = 40*MegaBit; // 40 megabit pub.Options.MulticastRecoveryInterval = TimeSpan.FromMinutes(10); pub.Options.SendBuffer = MegaByte*10; // 10 megabyte pub.Connect("pgm://224.0.0.1:5555"); sub.Options.ReceiveBuffer = MegaByte*10; sub.Bind("pgm://224.0.0.1:5555"); sub.Subscribe(""); pub.SendFrame("Hi"); bool more; Assert.AreEqual("Hi", sub.ReceiveFrameString(out more)); Assert.IsFalse(more); Assert.AreEqual(2, pub.Options.MulticastHops); Assert.AreEqual(40*MegaBit, pub.Options.MulticastRate); Assert.AreEqual(TimeSpan.FromMinutes(10), pub.Options.MulticastRecoveryInterval); Assert.AreEqual(MegaByte*10, pub.Options.SendBuffer); Assert.AreEqual(MegaByte*10, sub.Options.ReceiveBuffer); } }
public void WelcomeMessage() { using (var pub = new XPublisherSocket()) using (var sub = new SubscriberSocket()) { pub.Bind("inproc://welcome"); pub.SetWelcomeMessage("W"); sub.Subscribe("W"); sub.Connect("inproc://welcome"); var subscription = pub.ReceiveFrameBytes(); Assert.AreEqual(subscription[1], (byte)'W'); Assert.AreEqual("W", sub.ReceiveFrameString()); } }