Exemple #1
0
        public void AddConnection(SkyblockBackEnd con, int id = 0)
        {
            Subs.AddOrUpdate(con.Id, cid => id, (cid, oldMId) => id);
            var toSendFlips = Flipps.Reverse().Take(5);

            SendFlipHistory(con, id, toSendFlips);
        }
Exemple #2
0
 private static void SendFlipHistory(SkyblockBackEnd con, int id, IEnumerable <FlipInstance> toSendFlips, int delay = 5000)
 {
     Task.Run(async() =>
     {
         foreach (var item in toSendFlips)
         {
             var data = CreateDataFromFlip(item);
             data.mId = id;
             con.SendBack(data);
             await Task.Delay(delay);
         }
     }).ConfigureAwait(false);
 }
Exemple #3
0
 private static void NotifyAll(MessageData message, ConcurrentDictionary <long, int> subscribers)
 {
     foreach (var item in subscribers.Keys)
     {
         var m = MessageData.Copy(message);
         m.mId = subscribers[item];
         try
         {
             if (!SkyblockBackEnd.SendTo(m, item))
             {
                 subscribers.TryRemove(item, out int value);
             }
         }
         catch (Exception e)
         {
             Console.WriteLine($"Failed to send flip {e.Message} {e.StackTrace}");
             subscribers.TryRemove(item, out int value);
         }
     }
 }
Exemple #4
0
 public void RemoveNonConnection(SkyblockBackEnd con)
 {
     SlowSubs.TryRemove(con.Id, out int value);
 }
Exemple #5
0
 public void AddNonConnection(SkyblockBackEnd con, int id = 0)
 {
     SlowSubs.AddOrUpdate(con.Id, cid => id, (cid, oldMId) => id);
     SendFlipHistory(con, id, LoadBurst, 0);
 }