Пример #1
0
        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);
            }
        }