コード例 #1
0
        /// <summary>
        /// 反序列化并处理消息
        /// </summary>
        /// <param name="buffer">数据</param>
        /// <param name="iServer">服务端标记</param>
        private void HandleMessage(byte[] buffer, bool iServer)
        {
            object message;

            try
            {
                if (buffer.Length == 5 && Encoding.UTF8.GetString(buffer) == "Hello")
                {//心跳,客户端需要回复
                    if (!iServer)
                    {
                        Send(buffer);
                    }
                    return;
                }
                try
                {
                    if (SocketConfig.IStruct)
                    {
                        message = StructHelper.DeserializeObject(buffer);
                    }
                    else
                    {
                        message = buffer;
                    }
                }
                catch (Exception ex)
                {
                    log.Error(ex);
                    message = buffer;
                }
                MessageEvent?.Invoke(message);
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
        }