Я пытаюсь реализовать двоичный протокол между флэш-приложением и пользовательским Java-сервером с использованием сокетов TCP/IP, сообщения протокола имеют переменную длину, поэтому моя идея состоит в том, чтобы добавить поле, указывающее количество байтов, которые я должен прочитать перед разбор полного сообщения, примерно так:
bytesToRead = socket.readInteger();
var bf:ByteArray;
socket.readBytes(bytesToRead);
parseMessage(bf);
Итак, мой вопрос: если при обработке сообщения (предположим, что оно завершено) другие данные поступают через сокет, сообщения типа ProgressEvent.SOCKET_DATA поставлены в очередь, поэтому количество вызовов моего обработчика равно (по крайней мере, в этом случае) количество полученных сообщений или мне следует читать, пока не будут доступны все данные сокета? или проще: вообще сообщения для обработчика ставятся в очередь во флеш-памяти?