/// <summary>
        /// 处理数据结果。
        /// </summary>
        /// <param name="type"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        private byte[] HandleResult(WebSocketMessageType type, byte[] data)
        {
            if (type == WebSocketMessageType.Binary)
            {
                if (data.Length == 1 && data[0] == '\0')
                {
                    OnHeartBeating();
                }
                else
                {
                    OnReceived(data);
                }
            }
            else if (type == WebSocketMessageType.Text)
            {
                var           content = AcceptContext.Option.Encoding.GetString(data);
                InvokeMessage message;
                try
                {
                    OnReceived(content);
                    message = AcceptContext.Option.Formatter.ResolveMessage(content);
                }
                catch (Exception exp)
                {
                    OnResolveError(content, exp);
                    return(null);
                }

                Type returnType = null;

                try
                {
                    var method = FindMethod(message);

                    var authContext = new AuthorizeContext(AcceptContext.User, method, message.Arguments);
                    if (!OnAuthorizing(authContext))
                    {
                        throw new Exception($"未通过认证 {message.Method}。");
                    }

                    var arguments = ResolveArguments(method, message);

                    var result = method.FastInvoke(this, arguments);
                    if (method.ReturnType.IsGenericType && method.ReturnType.GetGenericTypeDefinition() == typeof(Task <>))
                    {
                        returnType = method.ReturnType.GetGenericArguments()[0];
                        result     = method.ReturnType.GetProperty("Result").GetValue(result);
                    }
                    else if (method.ReturnType != typeof(void) && method.ReturnType != typeof(Task))
                    {
                        returnType = method.ReturnType;
                    }

                    if (returnType != null)
                    {
                        message.IsReturn = 1;
                        return(ReturnValue(message, result));
                    }
                }
                catch (Exception exp)
                {
                    OnInvokeError(message, new WebSocketHandleException(ConnectionId, "处理接收到的数据时发生异常。", exp));
                    return(ReturnValue(message, returnType?.GetDefaultValue()));
                }
            }

            return(null);
        }
 /// <summary>
 /// 用户认证。
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 protected virtual bool OnAuthorizing(AuthorizeContext context)
 {
     return(true);
 }