Тайм-аут в событиях AS3

У меня есть объект 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" быстрее (как "хорошо" быстро)?

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").

Вы можете найти больше информации здесь.

Вы, скорее всего, не можете. Событие запускается настолько быстро, насколько это возможно, это сбой соединения, который требует много времени, чтобы проявиться.

Мне кажется, проблема в том, что время попытки подключения истекло. Flash пытается подключиться и устанавливает таймер, если таймер срабатывает до установления соединения. Flash приходит к выводу, что ресурс недоступен. Вы не можете получить сбой сразу, потому что соединение не прерывается, пока не сработает таймер.

Flash не может сразу сказать вам, что ресурс недоступен, потому что иногда сервер отвечает в течение миллисекунд, но иногда это может занять несколько секунд.

Другие вопросы по тегам