/// <summary>
        /// Parses incoming buffer for a specified connection.
        /// </summary>
        /// <param name="token">Client token information.</param>
        /// <param name="buffer">Received buffer.</param>
        /// <param name="bytesTransfered">Number of bytes transfered throught the network.</param>
        /// <returns>A collection containing all messages as byte arrays.</returns>
        public IEnumerable <byte[]> ParseIncomingData(LiteDataToken token, byte[] buffer, int bytesTransfered)
        {
            var messages = new List <byte[]>();

            while (token.DataStartOffset < bytesTransfered)
            {
                if (!token.IsHeaderComplete)
                {
                    token.IsHeaderComplete = _packetProcessor.ParseHeader(token, buffer, bytesTransfered);
                }

                if (token.IsHeaderComplete && token.HeaderData is not null)
                {
                    _packetProcessor.ParseContent(token, buffer, bytesTransfered);
                }

                if (token.IsMessageComplete)
                {
                    messages.Add(BuildClientMessageData(token));
                    token.Reset();
                }
            }

            token.DataStartOffset = 0;

            return(messages);
        }