我目前正在ActionScript 3中编写一个客户端,它通过NetConnection对象与Red5应用程序/媒体服务器通信。服务器通过此连接向客户端发送多种类型的数据,包括视频,音频和远程过程调用。经过不确定的时间(有时10秒,有时10分钟)后,我在Flash客户端的调试版本的弹出窗口中看到以下错误:
"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!!!");
}
}
如果我故意抛出一些错误,我的未捕获异常处理程序将被正确调用,但是当Error #2030
发生时它永远不会被调用。
所以我确实有两种结果可以接受:
我很确定我已经把它缩小到从我的服务器到我的客户端的RPC调用,因为当我禁用它们但是留下音频&视频,我没有看到这个问题。不幸的是,除此之外,我还没有任何好的想法。
感谢任何帮助。谢谢!
答案 0 :(得分:2)
如果未添加适当的侦听器,则会抛出一些错误。
您是否正在通过网络连接收听asyncError
和ioError
个事件?
如果没有,请试一试。
答案 1 :(得分:0)
try
{
}
catch( e : EOFError )
{
trace( e ); // EOFError: Error #2030: End of file was encountered.
}