Ejemplo n.º 1
0
        protected void ReadAllMessages()
        {
            if (!CanRead)
            {
                return;
            }

            Task <HttpMessage> messageTask = null;

            //todo: dispose parser
            try
            {
                var parser = new HttpParser(this);
                messageTask = parser.ParseMessageAsync();
                messageTask.Wait();
            }
            catch (System.IO.IOException e) { Debug.WriteLine(e); }
            catch (System.AggregateException e) { Debug.WriteLine(e); }

            if (messageTask?.IsCompletedSuccessfully ?? false)
            {
                MessageParsed?.Invoke(this, messageTask.Result);
                ReadAllMessagesAsync();
            }
        }
Ejemplo n.º 2
0
 public HttpResponse SendRequest(HttpRequest request)
 {
     if (Connection != null)
     {
         Connection.WriteMessage(request);
         return(Connection.ReadMessage() as HttpResponse);
     }
     else
     {
         var writer = new HttpWriter(RawStream);
         writer.WriteMessage(request);
         var parser = new HttpParser(RawStream);
         return(parser.ParseMessageAsync().Result as HttpResponse);
     }
 }
Ejemplo n.º 3
0
        public static async Task <HttpMessage> ParseMessage(HttpConnectionStream connection)
        {
            var parser = new HttpParser(connection);

            return(await parser.ParseMessageAsync());
        }