Как я могу поймать и / или обработать «Ошибка № 2030: обнаружен конец файла» в NetConnection в ActionScript 3? - PullRequest
4 голосов
/ 31 марта 2011

В настоящее время я пишу клиент в 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 происходит.

Таким образом, на самом деле есть два результата, которые были бы приемлемы для меня:

  1. Как, черт возьми, я могу это поймать "Конец файла обнаружен"ошибка и разбираться с этим в коде?
  2. Если я не могу уловить это, есть какие-нибудь мысли о том, что вызывает это и как я могу это исправить?

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

Любая помощь приветствуется.Спасибо!

Ответы [ 2 ]

2 голосов
/ 31 марта 2011

Некоторые из этих ошибок генерируются, если не добавлен правильный слушатель.

Слушаете ли вы события asyncError и ioError из своего сетевого соединения?

Если нет, просто попробуйте.

0 голосов
/ 29 мая 2012
try
{

}
catch( e : EOFError )
{
    trace( e );     // EOFError: Error #2030: End of file was encountered.
}
...