Събитията на Socket поставят ли се на опашка във Flash?

Опитвам се да внедря двоичен протокол между флаш приложение и персонализиран Java сървър, използвайки TCP/IP сокети, съобщенията на протокола са с променлива дължина, така че идеята ми е да добавя поле, указващо броя байтове, които трябва да прочета преди анализиране на пълно съобщение, нещо като това:

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

Така че въпросът ми е: ако по време на обработка на съобщение (ако приемем, че е пълно) други данни пристигат през сокета, съобщенията от тип ProgressEvent.SOCKET_DATA поставени ли са на опашка, така че броят пъти, когато моят манипулатор е извикан, е равен (поне в този случай) на броя на пристигналите съобщения или трябва да чета, докато всички данни, които сокетът разполага? или по-просто: общо съобщенията за манипулатор поставени ли са на опашка във флаш?


person james_bond    schedule 01.12.2009    source източник


Отговори (1)


Събитието ProgreeEvent.SOCKET_DATA се изпраща всеки път, когато сокетът получи данни. По принцип всеки път, когато вашият Java сървър извика socket.write(); или socket.writeln(), трябва да получите цялото съобщение в ProgreeEvent.SOCKET_DATA, освен ако, разбира се, не изпращате частични съобщения.

Надяваме се, че това отговаря на въпроса ви.

person Chris Gutierrez    schedule 02.12.2009