Ejemplo n.º 1
0
 /// <summary>
 /// 当服务端发送Packet完毕会调用此方法
 /// </summary>
 /// <param name="connection"></param>
 /// <param name="e"></param>
 public override void OnSendCallback(IConnection connection, SendCallbackEventArgs e)
 {
     base.OnSendCallback(connection, e);
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine("send " + e.Status.ToString());
     Console.ForegroundColor = ConsoleColor.Gray;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// OnSendCallback
 /// </summary>
 /// <param name="connection"></param>
 /// <param name="e"></param>
 protected override void OnSendCallback(IConnection connection, SendCallbackEventArgs e)
 {
     base.OnSendCallback(connection, e);
     if (e.Status != SendCallbackStatus.Success && connection.Active)
     {
         connection.BeginSend(e.Packet);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// OnSendCallback
 /// </summary>
 /// <param name="connection"></param>
 /// <param name="e"></param>
 protected override void OnSendCallback(IConnection connection, SendCallbackEventArgs e)
 {
     if (e.Status != SendCallbackStatus.Success)
     {
         connection.BeginDisconnect();
     }
     base.OnSendCallback(connection, e);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// fire SendCallback
 /// </summary>
 /// <param name="e"></param>
 private void OnSendCallback(SendCallbackEventArgs e)
 {
     if (e.Status != SendCallbackStatus.Success)
     {
         e.Packet.SentSize = 0;
     }
     if (this.SendCallback != null)
     {
         this.SendCallback(this, e);
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// OnSendCallback
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="e"></param>
        protected override void OnSendCallback(IConnection connection, SendCallbackEventArgs e)
        {
            base.OnSendCallback(connection, e);

            var request = e.Packet as Request <TResponse>;

            if (request == null)
            {
                return;
            }

            if (e.Status == SendCallbackStatus.Success)
            {
                request.CurrConnection = connection;
                request.SentTime       = DateTime.UtcNow;
                this.OnSendSucess(connection, request);
                return;
            }

            request.CurrConnection = null;
            request.SentTime       = DateTime.MaxValue;
            if (this._requestCollection.Remove(request.SeqID) == null)
            {
                return;
            }

            if (DateTime.UtcNow.Subtract(request.BeginTime).TotalMilliseconds < this._millisecondsSendTimeout)
            {
                this.OnSendFailed(connection, request);
                return;
            }

            //time out
            this.OnSendTimeout(request);

            ThreadPool.QueueUserWorkItem(_ =>
            {
                var rex = new RequestException(RequestException.Errors.PendingSendTimeout, request.CmdName);
                try { request.SetException(rex); }
                catch (Exception ex) { SocketBase.Log.Trace.Error(ex.Message, ex); }
            });
        }
Ejemplo n.º 6
0
 /// <summary>
 /// send callback
 /// </summary>
 /// <param name="connection"></param>
 /// <param name="e"></param>
 protected override void OnSendCallback(IConnection connection, SendCallbackEventArgs e)
 {
     base.OnSendCallback(connection, e);
     try { this._handler.OnSendCallback(connection, e); }
     catch (Exception ex) { Log.Trace.Error(ex.Message, ex); }
 }
Ejemplo n.º 7
0
 /// <summary>
 /// OnSendCallback
 /// </summary>
 /// <param name="connection"></param>
 /// <param name="e"></param>
 protected virtual void OnSendCallback(IConnection connection, SendCallbackEventArgs e)
 {
 }
Ejemplo n.º 8
0
 public void OnSendCallback(IConnection connection, SendCallbackEventArgs e)
 {
     //throw new NotImplementedException();
     Console.WriteLine("send ok");
 }