コード例 #1
0
ファイル: NetAsynRecv.cs プロジェクト: mengtest/fs
        private void HandleMsg()
        {
            LusuoStream stream = new LusuoStream(m_recvBuffer);
            int         msgLen = stream.ReadInt();
            ushort      msgId  = stream.ReadUShort();
            //Debug.Log("接受消息长度:" + msgLen);
            //Debug.Log("接受消息ID:" + (eNetMessageID)msgId);
            // 通过消息头,获取消息体
            NetMessage msg = NetManager.Inst.GetMessage((eNetMessageID)msgId);

            msg.OnRecv(msgLen, ref stream);
            if (msg is FspMsgFrame)
            {
                msg.OnRecv();
                GameManager.Inst.AddFrameMsg(msg);
            }
            //msg.OnRecv();
            m_msgList.Add(msg);


            // 如果id段大于1000,那么就是lua协议
            //if (msgId > s_luaStartId)
            //{
            //    LuaMsgStruct data;
            //    data.id = msgId;
            //    data.msgLen = msgLen;
            //    data.stream = stream;
            //    m_luaMsgList.Add(data);
            //}
        }
コード例 #2
0
        private void HandleMsg(Conn conn)
        {
            LusuoStream stream     = new LusuoStream(conn.readBuff);
            int         contentLen = stream.ReadInt();
            ushort      msgId      = stream.ReadUShort();
            NetMessage  msg        = NetManager.Inst.GetMessage(msgId);

            if (msg == null)
            {
                return;
            }
            if (msgId != (int)eNetMessageID.MsgHeartBeat)
            {
                Console.WriteLine(m_serverType + ":接受消息:" + (eNetMessageID)msgId);
            }
            msg.OnRecv(ref conn, contentLen, ref stream);

            MessageCache cache;

            cache.conn = conn;
            cache.msg  = msg;
            // 每次接受存起来,然后一阵一个
            msgList.Add(cache);
        }