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); }
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); }
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); } } }
public void RemoveNonConnection(SkyblockBackEnd con) { SlowSubs.TryRemove(con.Id, out int value); }
public void AddNonConnection(SkyblockBackEnd con, int id = 0) { SlowSubs.AddOrUpdate(con.Id, cid => id, (cid, oldMId) => id); SendFlipHistory(con, id, LoadBurst, 0); }