public void ParseMessages(BufferSegment segment, ref List <Message> messages) { if (segment.Data == null || segment.Count == 0) { return; } int from = segment.Offset; int separatorIdx = Array.IndexOf <byte>(segment.Data, (byte)JsonProtocol.Separator, from); if (separatorIdx == -1) { throw new Exception("Missing separator in data! Segment: " + segment.ToString()); } while (separatorIdx != -1) { if (HTTPManager.Logger.Level == Logger.Loglevels.All) { HTTPManager.Logger.Verbose("JsonProtocol", "ParseMessages - " + System.Text.Encoding.UTF8.GetString(segment.Data, from, separatorIdx - from)); } var message = this.Encoder.DecodeAs <Message>(new BufferSegment(segment.Data, from, separatorIdx - from)); messages.Add(message); from = separatorIdx + 1; separatorIdx = Array.IndexOf <byte>(segment.Data, (byte)JsonProtocol.Separator, from); } }