// main Thread
 protected void AddToSerializeQueue(NetworkMessageItem item)
 {
     if (_recoder != null)
     {
         if (this.Id != _recoder.Info.ChannedId)
         {
             _recoder.Info.ChannedId = this.Id;
             _recoder.UpdateInfoToFile();
         }
         _recoder.AddMessage(EReplayMessageType.OUT, NetworkMessageRecoder.RecodMessageItem.Allocate(this,
                                                                                                     item.MessageType, item.MessageBody, MyGameTime.stage, MyGameTime.seq, NetworkMessageRecoder.ERecodMessagetype.UdpOut));
     }
     if (IsConnected && _serializer != null)
     {
         item.AcquireReference();
         _serializeQueue.Enqueue(item);
     }
     else
     {
         if (_serializer == null)
         {
             _logger.InfoFormat("drop message for serializer not set");
         }
         if (!IsConnected)
         {
             _logger.InfoFormat("drop message for not connected{0}", IdInfo());
         }
     }
 }