(Как) Можно ли реализовать улитку HTTP (кометные / долгоживущие соединения) во Flash? - PullRequest
1 голос
/ 14 декабря 2008

Меня очень интересует потоковая передача данных для веб-приложений. Я опробовал некоторые библиотеки javascript, но взломы и несовместимость браузеров сводят меня с ума! Надеюсь, HTML5 стандартизирует потоковые данные, но до тех пор, я надеюсь, я смогу прибегнуть к Flash, чтобы это работало во всех браузерах. К сожалению, я не очень хорошо знаком со всеми функциями Flash.

Я пробовал loadVariables.onData во Flash 8, но он не поддерживает потоковую передачу данных. Данные доступны только после завершения запроса. Есть ли способ вызывать функцию каждый раз, когда возвращаются новые данные?

Ответы [ 3 ]

3 голосов
/ 15 декабря 2008

Хотя я не знаком с тем, что вы делаете, похоже, вы должны смотреть на URLStream . Когда вы загружаете вещи, которые Flash интуитивно понимает (MP3, JPG, SWF и т. Д.), Вы обычно используете Loader , и тогда вы также можете получить события прогресса , но Я предполагаю, что вы говорите о загрузке произвольных данных в ByteArray, и URLStream должен предоставить вам весь необходимый низкоуровневый доступ.

Предполагается, что вы используете AS3 и Flash Player 9+. Я бы не стал клясться в этом, но я уверен, что то, что вы ищете, невозможно в AS2.

2 голосов
/ 15 декабря 2008

Если вы просто хотите транслировать один файл, используйте URLStream, как подсказывает феномен. Если вы хотите открытое соединение, которое может как отправлять, так и получать данные, класс, который вы ищете, это XMLSocket . Должно работать на чем-нибудь, что осталось за Flash 5.

0 голосов
/ 17 декабря 2008

Как предположили Мосс Коллум и феномы, есть URLStream и XMLSocket. Но если вы хотите взаимодействовать с сервером на двоичном уровне, вы можете читать и записывать байты с помощью объекта Socket.

Помните, что любое сетевое взаимодействие подчиняется очень жесткой модели безопасности Flash Player. Вы можете обнаружить, что изучение этого будет очень хорошо проведенным временем.

...