示例#1
0
 internal void OnSendComplete(SendCompleteEventArgs e)
 {
     if (evSendComplete != null)
     {
         evSendComplete(this, e);
     }
 }
示例#2
0
        protected virtual void OnSendBusinessEvent(object sender, SendCompleteEventArgs e)
        {
            var handler = SendBusinessEvent;

            if (handler != null)
            {
                handler.Invoke(this, e);
            }
        }
示例#3
0
        private void session_SendComplete(object sender, SendCompleteEventArgs e)
        {
            logger.Debug("{0} response sent.", _connectionToken.Substring(0, 6));

            _lastActiveTime = DateTime.Now;

            if (_lastProcessor.ResponseBodyLength != 0)
            {
                int    length = 0;
                byte[] buffer;
                int    offset;

                try
                {
                    length = _lastProcessor.SubmitResponseBody(
                        out buffer, out offset);
                }
                catch (Exception ex)
                {
                    //exception occur while get response body from processer
                    logger.Warn("{0} exception occur while get response body from processer {1}, message: {2}",
                                _connectionToken.Substring(0, 6),
                                _lastProcessor.GetType().Name,
                                ex.Message);
                    Close();
                    return;
                }

                if (length > 0)
                {
                    _workStatus = SessionWorkStatus.SendingResponseBody;
                    _session.ContinueSendingBody(buffer, offset, length);
                    return;
                }
            }

            //close session if does not keep alive
            //NOTE::Let client to close the connection, otherwise, server will
            //generate lots of TIME_WAIT sockets

            ////if (!_serverKeepAlive)
            ////{
            ////    Close();
            ////}
            ////else
            ////{
            //continue receive next request
            _workStatus = SessionWorkStatus.ReceivingRequestHeader;
            HttpRequestHeader requestHeader = new HttpRequestHeader();

            _session.Receive(requestHeader, _bodyBuffer, 0, _bodyBuffer.Length);
            ////}
        }
示例#4
0
 internal void OnSendComplete(SendCompleteEventArgs e) {
   if (evSendComplete != null)
     evSendComplete(this, e);
 }
示例#5
0
 private void SendBusinessEvent(object sender, SendCompleteEventArgs e)
 {
     ClientConsole.WriteLine(e.Message, e.Level.ToOutputLevel(), null);
 }
示例#6
0
 private void SendBusinessEvent(object sender, SendCompleteEventArgs e)
 {
     _console.WriteLine(e.Message, e.Level.ToOutputLevel(), null);
     Trace.WriteLine(e.Message, e.Level.ToString());
 }