diff --git a/FireSharp/Response/EventStreamResponse.cs b/FireSharp/Response/EventStreamResponse.cs index bbd13bd..5ec26bc 100644 --- a/FireSharp/Response/EventStreamResponse.cs +++ b/FireSharp/Response/EventStreamResponse.cs @@ -60,25 +60,27 @@ await Task.Factory.StartNew(async () => _cancel.Token.ThrowIfCancellationRequested(); var read = await sr.ReadLineAsync(); Debug.WriteLine(read); - if (read.StartsWith("event: ")) + if (read != null) { - eventName = read.Substring(7); - continue; - } - - if (read.StartsWith("data: ")) - { - if (eventName == "keep-alive") + if (read.StartsWith("event: ")) + { + eventName = read.Substring(7); continue; + } - if (string.IsNullOrEmpty(eventName)) + if (read.StartsWith("data: ")) { - throw new InvalidOperationException("Payload data was received but an event did not preceed it."); - } + if (eventName == "keep-alive") + continue; - Update(eventName, read.Substring(6)); - } + if (string.IsNullOrEmpty(eventName)) + { + throw new InvalidOperationException("Payload data was received but an event did not preceed it."); + } + Update(eventName, read.Substring(6)); + } + } // start over eventName = null; }