События Socket ставятся в очередь во Flash? - PullRequest
1 голос
/ 02 декабря 2009

Я пытаюсь реализовать двоичный протокол между приложением флэш-памяти и пользовательским сервером Java с использованием сокетов TCP / IP, сообщения протокола имеют переменную длину, поэтому моя идея состоит в том, чтобы добавить поле с указанием количества байтов, которые у меня есть читать перед анализом полного сообщения, примерно так:

bytesToRead = socket.readInteger();
var bf:ByteArray;
socket.readBytes(bytesToRead);
parseMessage(bf);

Итак, мой вопрос: если во время обработки сообщения (его завершение завершено) другие данные поступают через сокет, это сообщения типа ProgressEvent.SOCKET_DATA ставятся в очередь, поэтому количество вызовов моего обработчика равно (по крайней мере, в этом случай) к количеству полученных сообщений или я должен прочитать, пока все данные сокета не доступны? или проще: - это вообще сообщения для обработчика, помещенного в очередь во флэш-памяти?

1 Ответ

2 голосов
/ 02 декабря 2009

Событие ProgreeEvent.SOCKET_DATA отправляется каждый раз, когда сокет получает данные. В основном каждый раз, когда ваш Java-сервер вызывает socket.write (); или socket.writeln (), вы должны получить все сообщение в ProgreeEvent.SOCKET_DATA, если, конечно, вы не отправляете частичные сообщения.

Надеюсь, что это отвечает на ваш вопрос.

...