示例#1
0
        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);
        }
示例#2
0
 private static void Stop()
 {
     PlayerWebsocketConnections.CloseAll();
     Thread.Sleep(1000);
     WebServer.Dispose();
     SocketServer.Dispose();
     Game.Engine.Engine.Stop();
 }