Beispiel #1
0
        /// <summary>
        /// 发送结果
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        protected virtual async Task SendResult(Result result)
        {
            if (IWrite != null)
            {
                Task <int> WSend()
                {
                    IWrite.Write(2500);
                    IWrite.Write(result.Id);

                    if (result.IsError)
                    {
                        IWrite.Write(true);
                        IWrite.Write(result.ErrorId);
                        IWrite.Write(result.ErrorMsg);
                    }
                    else
                    {
                        IWrite.Write(false);
                        IWrite.Write(result.Arguments.Count);
                        foreach (var item in result.Arguments)
                        {
                            IWrite.Write(item);
                        }
                    }

                    return(IWrite.Flush());
                }

                await await IWrite.Sync.Ask(WSend);
            }
            else
            {
                throw new NullReferenceException("IWrite is null!");
            }
        }
Beispiel #2
0
        /// <summary>
        /// 发送结果
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        protected virtual async Task SendResult(long id, byte[][] arguments = null)
        {
            if (IWrite != null)
            {
                Task <int> WSend()
                {
                    IWrite.Write(2500);
                    IWrite.Write(id);

                    IWrite.Write(false);

                    if (arguments is null)
                    {
                        IWrite.Write(0);
                    }
                    else
                    {
                        IWrite.Write(arguments.Length);
                        foreach (var item in arguments)
                        {
                            IWrite.Write(item);
                        }
                    }

                    return(IWrite.Flush());
                }

                await await IWrite.Sync.Ask(WSend);
            }
            else
            {
                throw new NullReferenceException("IWrite is null!");
            }
        }
Beispiel #3
0
 /// <summary>
 /// 发送验证
 /// </summary>
 /// <returns></returns>
 protected Task <int> SendVerify()
 {
     IWrite.Write(1000);
     IWrite.Write(ConnectOption.ServiceName ?? "");
     IWrite.Write(ConnectOption.VerifyKey ?? "");
     IWrite.Write(Session.GetSessionId());
     return(IWrite.Flush());
 }
Beispiel #4
0
        /// <summary>
        /// 发送验证
        /// </summary>
        /// <returns></returns>
        protected async Task <int> SendVerify()
        {
            Task <int> WSend()
            {
                IWrite.Write(1000);
                IWrite.Write(ConnectOption.ServiceName ?? "");
                IWrite.Write(ConnectOption.VerifyKey ?? "");
                IWrite.Write(Session.GetSessionId());
                return(IWrite.Flush());
            }

            return(await await IWrite.Sync.Ask(WSend));
        }
Beispiel #5
0
 /// <summary>
 /// 发送错误
 /// </summary>
 /// <param name="id"></param>
 /// <param name="msg"></param>
 /// <param name="errorType"></param>
 /// <returns></returns>
 protected virtual Task SendError(long id, string msg, ErrorType errorType)
 {
     if (IWrite != null)
     {
         IWrite.Write(2500);
         IWrite.Write(id);
         IWrite.Write(true);
         IWrite.Write((int)errorType);
         IWrite.Write(msg);
         return(IWrite.Flush());
     }
     else
     {
         throw new NullReferenceException("IWrite is null!");
     }
 }
Beispiel #6
0
 /// <summary>
 /// 发送结果
 /// </summary>
 /// <param name="result"></param>
 /// <returns></returns>
 protected virtual Task SendResult(long id, object argument)
 {
     if (IWrite != null)
     {
         IWrite.Write(2500);
         IWrite.Write(id);
         IWrite.Write(false);
         IWrite.Write(1);
         IWrite.Write(SerializationPacker.PackSingleObject(argument));
         return(IWrite.Flush());
     }
     else
     {
         throw new NullReferenceException("IWrite is null!");
     }
 }
Beispiel #7
0
        /// <summary>
        /// 发送结果
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        protected virtual async Task SendResult(long id, object argument)
        {
            if (IWrite != null)
            {
                var buffer = SerializationPacker.PackSingleObject(argument);
                Task <int> WSend()
                {
                    IWrite.Write(2500);
                    IWrite.Write(id);
                    IWrite.Write(false);
                    IWrite.Write(1);
                    IWrite.Write(buffer);
                    return(IWrite.Flush());
                }

                await await IWrite.Sync.Ask(WSend);
            }
            else
            {
                throw new NullReferenceException("IWrite is null!");
            }
        }