public int UpdateSubscribers() { int count = 0; foreach (SubscriberLevel lvl in subscribers.Keys) { foreach (Player player in subscribers[lvl]) { UpdateData data = null; if (deleted) { data = new UpdateData(EntityName()) { { "deleted", true }, { "id", Id } }; } else if (updateData != null && updateData.ContainsKey(lvl) && updateData[lvl] != null) { data = updateData[lvl]; } if (data != null) { Task.Run(() => PlayerWebsocketConnections.SendMessage(player, data.ToJson())); count++; } } } if (deleted) { RemoveSubscriptions(); } updateData = new Dictionary <SubscriberLevel, UpdateData>(); return(count); }
private static void Stop() { PlayerWebsocketConnections.CloseAll(); Thread.Sleep(1000); WebServer.Dispose(); SocketServer.Dispose(); Game.Engine.Engine.Stop(); }