actionscript-3 – 如何在ActionScript 3中的NetConnection上捕获和/或处理“错误#2030:遇到文件结尾”?

我目前正在ActionScript 3中编写一个客户端,它通过NetConnection对象与Red5应用程序/媒体服务器通信.服务器通过此连接向客户端发送多种类型的数据,包括视频,音频和远程过程调用.经过不确定的时间(有时10秒,有时10分钟)后,我在Flash客户端的Debug版本的弹出窗口中看到以下错误:

"Error: Error #2030: End of file was encountered."

我正在试图弄清楚是什么导致了这个错误,让我疯狂的事情是我似乎无法抓住它.我意识到错误可能表明某些低级网络读取失败,但它在调试Flash播放器中生成弹出窗口的事实意味着我应该能够捕获它.

由于错误没有关联的堆栈跟踪,我甚至在我的基础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!!!");
   }        
}

如果我故意抛出一些错误,我的未捕获异常处理程序将被正确调用,但是当错误#2030发生时它永远不会被调用.

所以我真的可以接受两种结果:

>我怎么能抓住这个“遇到文件结束”错误并在代码中处理它?
>如果我无法抓住它,有什么想法导致它以及我如何解决这个问题?

我很确定我已经把它缩小到从我的服务器到我的客户端的RPC调用,因为当我禁用它们时,但是留下音频&视频,我没有看到这个问题.不幸的是,除此之外,我还没有任何好的想法.

任何帮助表示赞赏.谢谢!

最佳答案 如果未添加适当的侦听器,则会抛出一些此错误.

您是否正在侦听来自netconnection的asyncError和ioError事件?

如果没有,请试一试.

点赞