Ejemplo n.º 1
0
 void SendAnnouncements(object state)
 {
     foreach (var kv in sockets)
     {
         if (!serviceAddresses.ContainsKey(kv.Key))
         {
             continue;
         }
         try {
             byte[] pkt;
             if (!packets.TryGetValue(kv.Key, out pkt))
             {
                 Logger.LogInfo("BuildAnnouncePacket {0}", kv.Key);
                 var uri  = serviceAddresses [kv.Key];
                 var text = info.CreateSignedPacket(uri, shuttingDown);
                 packets [kv.Key] = pkt = CryptoUtils.ZlibCompress(Encoding.UTF8.GetBytes(text));
             }
             kv.Value.Send(pkt, pkt.Length, new IPEndPoint(SOAConfig.Config.BusMulticastGroup, SOAConfig.Config.BusPort));
         } catch (Exception ex) {
             Logger.LogError("Failed to send announcement for {0}: {1}", kv.Key, ex.ToString());
         }
     }
 }