Como posso detectar e/ou lidar com o “Erro #2030:O fim do arquivo foi encontrado” em um NetConnection no ActionScript 3?
-
14-11-2019 - |
Pergunta
Atualmente estou escrevendo um cliente em ActionScript 3 que se comunica com um servidor de aplicativo/mídia Red5 por meio de um objeto NetConnection.O servidor envia ao cliente vários tipos de dados por meio desta conexão, incluindo vídeo, áudio e chamadas de procedimento remoto.Após um período de tempo indeterminado (às vezes 10 segundos, às vezes 10 minutos), vejo o seguinte erro em uma janela pop-up da minha versão de depuração do cliente Flash:
"Error: Error #2030: End of file was encountered."
Estou tentando descobrir o que está causando esse erro e o que realmente está me deixando maluco é que não consigo detectá-lo.Sei que o erro provavelmente indica alguma falha na leitura da rede de baixo nível, mas o fato de gerar uma janela pop-up no flash player de depuração implica que devo ser capaz de capturá-lo.
Como o erro não tem rastreamento de pilha associado, cheguei ao ponto de adicionar um manipulador de exceção não capturado em meu objeto Sprite base:
public class MyClient extends Sprite
{
public function FOWClient()
{
loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler);
}
private function uncaughtErrorHandler(event:UncaughtErrorEvent):void
{
trace("UNCAUGHT EXCEPTION!!!");
}
}
Meu manipulador de exceções não detectado será chamado corretamente se eu inserir alguns erros propositalmente, mas nunca será chamado quando isso acontecer. Error #2030
acontece.
Portanto, existem realmente dois resultados que seriam aceitáveis para mim:
- Como diabos posso detectar esse erro "Fim de arquivo encontrado" e lidar com ele no código?
- Se eu não conseguir pegá-lo, há alguma ideia sobre o que está causando isso e como posso corrigir isso?
Tenho certeza de que reduzi o problema às chamadas RPC feitas do meu servidor para o meu cliente, porque quando eu as desativo, mas deixo o áudio e o vídeo, não vejo o problema.Infelizmente, ainda não tenho boas ideias além disso.
Qualquer ajuda é apreciada.Obrigado!
Solução
Alguns desses erros são gerados se o ouvinte adequado não for adicionado.
Você está ouvindo asyncError
e ioError
eventos da sua conexão de rede?
Se não, experimente.
Outras dicas
try
{
}
catch( e : EOFError )
{
trace( e ); // EOFError: Error #2030: End of file was encountered.
}