AS3事件超时

时间:2011-04-07 07:33:12

标签: flash actionscript-3 events netconnection

我有一个NetConnection对象:

myNetConnection = new NetConnection();
myNetConnection.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
myNetConnection.connect("rtmp://address");

在处理程序中执行此操作:

private function statusHandler(event:NetStatusEvent):void
            {
                switch (event.info.code)
                {
                    case "NetConnection.Connect.Success": 
                    {
                        trace("ok");
                        break;
                    }
                    case "NetConnection.Connect.Failed":
                    {
                        trace("Some problems, NetConnection.Connect.Failed");
                        break;
                    }
                }
            }

所以,如果一切正常 - 我在调试控制台中看到“确定”非常快。 但如果有任何问题 - “一些问题,NetConnection.Connect.Failed”我看了很长时间后等待。 我的问题 - 我怎么能更快地看到“有些问题,NetConnection.Connect.Failed”(快速“ok”)?

2 个答案:

答案 0 :(得分:2)

你很可能不能。事件尽可能快地触发,这是连接失败,需要很长时间才能显现出来。

在我看来,问题是连接尝试超时。如果计时器在建立连接之前触发,则Flash会尝试连接并设置计时器Flash会断定该资源不可用。您不能立即获得故障,因为在计时器触发之前连接不会失败。

Flash无法立即告诉您资源不可用,因为有时服务器会在几毫秒内响应,但有时可能需要几秒钟。

答案 1 :(得分:2)

这里的问题是,如果Flash Player无法使用正常协议(RTMP,端口1935)连接到服务器,它会自动尝试使用回退协议和端口建立连接。正常的顺序是:

  

的NetConnection.connect( “RTMP:// MYSERVER / MyApp的”);   //使用默认端口1935   的NetConnection.connect( “RTMP:// MYSERVER:443 / MyApp的”);   的NetConnection.connect( “RTMP:// MYSERVER:80 / MyApp的”);   的NetConnection.connect( “RTMPT:// MYSERVER:80 / MyApp的”);

所有这些尝试都会增加连接的最终超时。

  

发生此自动重试序列   只有初始连接   指定RTMP协议和使用   默认端口 - 例如,   my_nc.connect( “RTMP:// MYSERVER / MyApp的”)。

您可以找到更多信息here