/// <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; }
/// <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); } }
/// <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); }
/// <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); } }
/// <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); } }); }
/// <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); } }
/// <summary> /// OnSendCallback /// </summary> /// <param name="connection"></param> /// <param name="e"></param> protected virtual void OnSendCallback(IConnection connection, SendCallbackEventArgs e) { }
public void OnSendCallback(IConnection connection, SendCallbackEventArgs e) { //throw new NotImplementedException(); Console.WriteLine("send ok"); }