예제 #1
0
        /// <summary>
        /// Removes a given subscriber and unmaps the object's dynamic ID.
        /// </summary>
        /// <param name="client">The client to remove.</param>
        public void RemoveSubscriber(MooNetClient client)
        {
            if (!this.Subscribers.Contains(client))
            {
                Logger.Warn("Attempted to remove non-subscriber {0}", client.Connection.RemoteEndPoint.ToString());
                return;
            }
            // Unmap the object from the client
            client.UnmapLocalObjectId(this.DynamicId);
            this.Subscribers.Remove(client);
            // We don't need to do a notify nor respond to the client with anything since the client will ultimately act
            // like the object never existed in the first place

            foreach (var subscriber in this.Subscribers)
                this.NotifySubscriptionAdded(subscriber);
        }