使用NetStatusEvent
连接到Red5服务器时,我偶尔会收到一个无法使用的NetConnection
:
Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.Failed
这是我连接的方式(NetConnection.connect()
被调用的唯一地方):
public function Connect(callBack:Function = null):void
{
if (IsConnected())
{
if (callBack != null)
{
callBack.call();
}
}
else // Not connected
{
netConnect.addEventListener(NetStatusEvent.NET_STATUS, function(e:NetStatusEvent):void
{
// OnConnect called whenever there is a net status event
OnConnect(e, callBack);
netConnect.removeEventListener(NetStatusEvent.NET_STATUS, arguments.callee);
});
try
{
// Attempt to connect to Media Server
netConnect.connect(MEDIA_SERVER_URI, true);
}
catch(error:Error)
{
logger.LogError("NetConnection.connect threw an exception.", error);
}
}
}
我正为NetStatusEvent.NET_STATUS
添加一个事件监听器。有时我的听众打电话怎么可能?
答案 0 :(得分:1)
您正在NetStatusEvent
处理程序中删除您的侦听器。您应该保留它直到连接关闭。这就是NetStatusEvent
仅在其侦听器被删除之前处理一次的原因。除了第一个事件之外的任何其他事件都会抛出该错误。
删除netConnect.removeEventListener(NetStatusEvent.NET_STATUS, arguments.callee);
NetConnection
根据发生的事情发送相当多的事件。你必须每次都处理这个事件。有关info
属性的可能值列表,请访问此Link。还有一个如何在页面末尾处理事件的例子。
答案 1 :(得分:1)
如果您的客户端不处理onBWCheck或onBWDone方法,您可能会看到此信息。如果您打开带宽检测,也会发生这种情况;通过更改red5.properties文件中的此参数并在服务器上关闭它,然后重新启动服务器。
rtmp.bandwidth_detection=false
答案 2 :(得分:1)
块引用
只是另外一条信息。使用info.level =“error”调度NetStatusEvent对象将始终抛出Unhandled Exception。它是一个特殊的用例。例如,在重新分派事件之前,我将包装所有这些功能并将级别更改为“info”。