コード例 #1
0
 private void HandleMessage(IServerMessageBase msg)
 {
     try
     {
         MessageHandler.HandleMessage(msg);
     }
     catch (Exception e)
     {
         LunaLog.LogError($"[LMP]: Error handling Message type {msg.Data.GetType()}, exception: {e}");
         NetworkConnection.Disconnect($"Error handling {msg.Data.GetType()} Message");
     }
     finally
     {
         msg.Recycle();
     }
 }
コード例 #2
0
        public virtual void EnqueueMessage(IServerMessageBase msg)
        {
            if (!Enabled)
            {
                return;
            }

            if (ProcessMessagesInUnityThread)
            {
                MessageHandler.IncomingMessages.Enqueue(msg);
            }
            else
            {
                TaskFactory.StartNew(() =>
                {
                    HandleMessage(msg);
                    msg.Recycle();
                });
            }
        }