コード例 #1
0
 private static void OnLogItemReceived(object item)
 {
     if (LogItemReceived != null)
     {
         LogItemReceived.BeginInvoke(item, null, null);
     }
 }
コード例 #2
0
        /// <summary>
        /// handle a new incoming message
        /// </summary>
        /// <param name="message">bytes of the message</param>
        protected void HandleMessage(byte[] message)
        {
            try
            {
                var logItems = MessageSerializer.Unserialize <ILogItem>(message);

                foreach (var logItem in logItems)
                {
                    if (IsDebugLogEnabled)
                    {
                        DebugLog.Debug(LogCategory.Network)?.
                        T($"log item received: {logItem.Text}");
                    }

                    LogItemReceived?.Invoke(this, logItem);
                }
            } catch (InvalidCastException)
            {
                var coms = MessageSerializer.Unserialize <ICommandMessage>(message);

                foreach (var com in coms)
                {
                    if (IsDebugLogEnabled)
                    {
                        DebugLog.Debug(LogCategory.Network)?.
                        T($"command reply received: {com}");
                    }

                    HandleCommand(com);
                }
            }
            catch (Exception)
            {
                // rethrow
                throw;
            }
        }