Я пишу Comet-подобное приложение, используя Flex на клиенте и свой собственный рукописный сервер.
Мне нужно иметь возможность отправлять короткие пакеты данных от клиента с довольно высокой частотой (например, порядка 10 мс между отправками).
Мне также нужен сервер для передачи коротких пакетов данных с такой же высокой частотой.
Я использую NetConnection.call () для отправки данных на сервер и URLStream (с кусочной кодировкой) для передачи данных с сервера на клиент.
Я обнаружил, что данные не отправляются / не принимаются, как только они становятся доступными. Например, в IE кажется, что данные отправляются каждые 200 мс, а не как только вызывается NetConnection.call (). Аналогично, URLStream не делает данные доступными, как только сервер их отправляет.
Судя по разнице в поведении между браузерами, кажется, что Flash Player (версия 10) полагается на хост-браузер для выполнения всех сообщений. Кто-нибудь может это подтвердить? Обновление : Это очень вероятно, поскольку только браузер хоста может знать о настройках прокси, которые могут быть установлены.
Я пытался использовать класс Socket, и там нет проблем со скоростью: он отлично работает. Однако я хотел бы иметь возможность использовать HTTP-соединения (порт 80), чтобы мое приложение могло работать в средах с сильными огненными стенами (я пытался использовать Socket через порт 80, но у него есть свои проблемы).
Кстати, вся разработка / тестирование проводилась во внутренней локальной сети, поэтому пропускная способность / задержка не являются проблемой.
Обновление : отправляемые / получаемые данные находятся в небольших пакетах и не должны быть в каком-либо конкретном формате. Например, мне может понадобиться отправить короткий массив Numbers, и это может быть либо закодировано в AMF (например, через NetConnection.call ()), либо может быть помещено в параметры GET (например, с помощью sendToURL ()). Суть моего вопроса в том, чтобы выяснить, действительно ли кто-то еще сталкивался с такой же проблемой при частом вызове NetConnection / URLStream, и есть ли обходной путь (возможно также, что ошибка связана с кодом моего сервера, а не с Flash) .
Спасибо.