В настоящее время я пишу клиент в ActionScript 3, который общается с сервером приложений / мультимедиа Red5 через объект NetConnection.Сервер отправляет клиенту несколько типов данных по этому соединению, включая видео, аудио и вызовы удаленных процедур.Через неопределенное время (иногда 10 секунд, иногда 10 минут) я вижу следующую ошибку во всплывающем окне из моей отладочной версии Flash-клиента:
"Error: Error #2030: End of file was encountered."
Я пытаюсьчтобы понять, что является причиной этой ошибки и что меня действительно сводит с ума, это то, что я не могу ее поймать.Я понимаю, что ошибка, вероятно, указывает на сбой при чтении некоторых низкоуровневых сетей, но тот факт, что он генерирует всплывающее окно в отладочном флеш-плеере, подразумевает, что я должен иметь возможность его перехватить.
Поскольку ошибка не имеетсвязанную трассировку стека, я зашел так далеко, что добавил обработчик необработанных исключений в мой базовый объект Sprite:
public class MyClient extends Sprite
{
public function FOWClient()
{
loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler);
}
private function uncaughtErrorHandler(event:UncaughtErrorEvent):void
{
trace("UNCAUGHT EXCEPTION!!!");
}
}
Мой обработчик необработанных исключений будет вызываться правильно, если я намеренно выбрасываю некоторые ошибки, но никогдавызывается, когда это Error #2030
происходит.
Таким образом, на самом деле есть два результата, которые были бы приемлемы для меня:
- Как, черт возьми, я могу это поймать "Конец файла обнаружен"ошибка и разбираться с этим в коде?
- Если я не могу уловить это, есть какие-нибудь мысли о том, что вызывает это и как я могу это исправить?
Я довольноконечно, я сузил это до необходимости делать вызовы RPC, сделанные с моего сервера моему клиенту, потому что, когда я отключаю их, но оставляю аудио и видео, я не вижу проблемы.К сожалению, у меня пока нет хороших идей.
Любая помощь приветствуется.Спасибо!