Beispiel #1
0
        /// <summary>
        /// 添加消息处理
        /// </summary>
        /// <param name="msgID"></param>
        /// <param name="hand"></param>
        public void AddMessageParse(int msgID, NetClientMessageDelegate hand)
        {
            if (hand == null)
            {
                return;
            }

            if (!_msgHandlers.ContainsKey(msgID))
            {
                _msgHandlers.Add(msgID, new List <NetClientMessageDelegate>());
            }

            _msgHandlers[msgID].Add(hand);
        }
Beispiel #2
0
        /// <summary>
        /// 移除消息处理
        /// </summary>
        /// <param name="msgID"></param>
        /// <param name="hand"></param>
        public void RemoveMessageParse(int msgID, NetClientMessageDelegate hand)
        {
            if (hand == null)
            {
                return;
            }

            if (!_msgHandlers.ContainsKey(msgID))
            {
                return;
            }

            if (_msgHandlers[msgID].Contains(hand))
            {
                _msgHandlers[msgID].Remove(hand);
            }
        }
Beispiel #3
0
        private void OnReceiveMessage(NetClient client, int msgID, byte[] data)
        {
            if (data == null || data.Length == 0)
            {
                return;
            }

            if (!_msgHandlers.ContainsKey(msgID))
            {
                return;
            }

            var lstHandler = _msgHandlers[msgID];
            var aryHandler = new NetClientMessageDelegate[lstHandler.Count];

            lstHandler.CopyTo(aryHandler);
            foreach (var item in aryHandler)
            {
                item(client, data);
            }
        }