В настоящее время я перевожу проект Java на Flex 3. Большая часть проекта включает асинхронную связь.
Программа подключится к потоку, начнет загрузку данных. Вскоре после подключения потребуется загрузить контекстные данные в том же формате (ключевой кадр) по протоколу HTTP. В различных точках потока или ключевого кадра могут потребоваться дополнительные HTTP-вызовы, например, получить ключ шифрования.
В Java я использовал бы блокирующий вызов для выполнения HTTP-запросов, чтобы получить ключ, который мог бы эффективно приостановить ключевой кадр или поток во время завершения HTTP, который затем продолжил бы, где он был.
К сожалению, Flex является однопоточным, а HTTP-запросы реализуются с асинхронными обратными вызовами, поэтому невозможно реализовать код таким же образом.
Будучи новичком во Flex, я не уверен, какой будет нормальная практика для этого. В настоящее время я планирую сохранить состояние и выйти, полагаясь на завершение HTTP, чтобы перезапустить приостановленный поток. Или, может быть, использовать таймеры ...
Но для потока я должен отделить данные, полученные от обработки, и буферизовать их во время обработки запросов HTTP? Или это безопасно игнорировать события прогресса и позволить Flex и / или ОС буферизировать его?
У кого-нибудь есть советы по архитектуре, которая облегчит все это?
Спасибо!
РЕДАКТИРОВАТЬ : Спасибо за ответы до сих пор ...
в ужасе - я не уверен, что понимаю, к чему вы клоните, но я посмотрю на это.
brd6644 - одно из соединений (поток) уже является необработанным сокетом. Вопрос был в том, чтобы приостановить его и получить некоторые другие данные из другого источника.
CookieOfFortune - это выглядит полезным, спасибо.