GetMessageID() public method

获取消息号
public GetMessageID ( ) : Int16
return System.Int16
Exemplo n.º 1
0
        //-------------------------------------------------------------------------
        /// <summary>
        /// 解包处理
        /// </summary>
        /// <param name="client"></param>
        /// <param name="packet"></param>
        public void OnRecvMessage(SocketNetPacket packet)
        {
            if (m_MessageHandlers.ContainsKey((int)packet.GetMessageID()))
            {
                if (m_OnRecvMsgCallBack != null)
                {
                    m_OnRecvMsgCallBack(packet);
                }

                List<NetOnRecvMessageDelegate> handlerList = null;
                m_MessageHandlers.TryGetValue((int)packet.GetMessageID(), out handlerList);

                if (handlerList != null)
                {
                    List<NetOnRecvMessageDelegate> deletes = new List<NetOnRecvMessageDelegate>();
                    List<NetOnRecvMessageDelegate> exeList = new List<NetOnRecvMessageDelegate>(handlerList);
                    foreach (NetOnRecvMessageDelegate del in exeList)
                    {
                        if (del != null)
                        {
                            if (del.Target != null && del.Target.ToString() != SNetCommon.NULL)
                            {
                                int nSize = 0;
                                Byte[] pBuffer = packet.GetBody(out nSize);
                                int nMessageID = packet.GetMessageID();
                                del(nMessageID, pBuffer, nSize);
                            }
                            else
                            {
                                deletes.Add(del);
                            }
                        }
                    }

                    foreach (NetOnRecvMessageDelegate i in deletes)
                    {
                        handlerList.Remove(i);
                    }
                }
            }
        }
Exemplo n.º 2
0
        //-------------------------------------------------------------------------
        /// <summary>
        /// 解包处理
        /// </summary>
        /// <param name="client"></param>
        /// <param name="packet"></param>
        public void OnRecvMessage(SocketNetPacket packet)
        {
            if (m_MessageHandlers.ContainsKey((int)packet.GetMessageID()))
            {
                if (m_OnRecvMsgCallBack != null)
                {
                    m_OnRecvMsgCallBack(packet);
                }

                List <NetOnRecvMessageDelegate> handlerList = null;
                m_MessageHandlers.TryGetValue((int)packet.GetMessageID(), out handlerList);

                if (handlerList != null)
                {
                    List <NetOnRecvMessageDelegate> deletes = new List <NetOnRecvMessageDelegate>();
                    List <NetOnRecvMessageDelegate> exeList = new List <NetOnRecvMessageDelegate>(handlerList);
                    foreach (NetOnRecvMessageDelegate del in exeList)
                    {
                        if (del != null)
                        {
                            if (del.Target != null && del.Target.ToString() != SNetCommon.NULL)
                            {
                                int    nSize      = 0;
                                Byte[] pBuffer    = packet.GetBody(out nSize);
                                int    nMessageID = packet.GetMessageID();
                                del(nMessageID, pBuffer, nSize);
                            }
                            else
                            {
                                deletes.Add(del);
                            }
                        }
                    }

                    foreach (NetOnRecvMessageDelegate i in deletes)
                    {
                        handlerList.Remove(i);
                    }
                }
            }
        }