Exemple #1
0
 /// <summary>
 /// 处理接收的消息
 /// </summary>
 private void HandleRecvMsg()
 {
     if (!mReceiveMsgQueue.IsEmpty)
     {
         lock (mReceiveLock)
         {
             var data = mReceiveMsgQueue.Dequeue();
             // BitConverter.ToInt32(data, 0) 有大端和小端问题,不如直接手动转
             var msgId = BytesUtil.ReadInt(data, 0);
             // NetMsg里定义了协议Id和协议类型的映射,所有比较耦合
             var type     = NetMsg.GetTypeByMsgId(msgId);
             var response = ProtobufUtil.NDeserialize(type, data, sizeof(int));
             Debugger.Log(msgId);
             Debugger.Log(response);
             HandlerEventListener(msgId, response);
         }
     }
 }