ГлавнаяСправка по использованию серверного ActionScriptКласс Application › application.redirectConnection()

application.redirectConnection()

application.redirectConnection(clientObj, url[, description[, errorObj]])

Отклоняет попытку соединения и обеспечивает переадресацию на другой URL. Всю последующую логику нужно помещать внутри обработчика событий NetConnection.onStatus() который выявляет переадресацию и пересылает методу NetConnection.connect() новый URL для подключения.

Если был вызван этот метод, на стороне клиента срабатывает NetConnection.onStatus() с переданным информационным объектом, содержащим следующие значения:

Свойство

Значение

info.code

"NetConnection.Connect.Rejected"

info.description

Значение, переданное в параметре описания; если в параметре не передано никакого значения, значением по умолчанию является "Connection failed"

info.ex.code

302

info.ex.redirect

Новый URL для подключения

info.level

"Error"

Доступно с версии сервера

Flash Media Interactive Server 3 и Flash Media Development Server 3

Параметры

clientObj
Объект типа Client, определяющий клиента попытку подключения которого нужно отклонить.

url
Строка, определяющая новый URL для подключения.

Примечание: Без указания данного параметра будет вызвано только rejectConnection().

description
Строка, в которой можно указать подробную информацию в случаи перенаправления соединения.

errorObj
Объект любого типа, поясняющий причину отказа от подключения. Объект errorObj доступен на стороне клиента как свойство application информационного объекта передаваемого вызову NetConnection.onStatus() в случаи, когда попытка подключения отклоняется сервером.

Пример

В следующем примере содержится серверный код:

application.onConnect = function(clientObj, count){ 
    var err = new Object(); 
    err.message = "Попытка была отклонена"; 
    err.message2 = "Это второе сообщение. с описанием номера."; 
    if (count == 1){ 
        redirectURI = "rtmp://www.example.com/redirected/fromScript"; 
        redirectDescription = " Попытка отклонена серверным скриптом."; 
    } 
    else if (count == 2){ 
        redirectURI = "rtmp://www.example2.com/redirected/fromScript"; 
        redirectDescription = "Попытка отклонена серверным скриптом.";     
    } 
    application.redirectConnection(clientObj, redirectURI, redirectDescription, err);     
}

В следующем примере содержится код клиентской части ActionScript 3.0:

var theConnection:NetConnection; 
var theConnection2:NetConnection; 
var client:Object = new Object(); 
 
function init():void{ 
    connect_button.label = "Подключится"; 
    disconnect_button.label = "Отключится"; 
     
    connect_button.addEventListener(MouseEvent.CLICK, buttonHandler); 
    disconnect_button.addEventListener(MouseEvent.CLICK, buttonHandler); 
} 
 
function buttonHandler(event:MouseEvent){ 
    switch (event.target){ 
        case connect_button : 
            doConnect(); 
            break; 
        case disconnect_button : 
            disConnect(); 
            break; 
    } 
} 
function doConnect(){ 
    makeConnection(theURI.text); 
} 
 
 
function disConnect(){ 
    theConnection.close(); 
} 
 
function makeConnection(uri:String){ 
    if (theConnection){ 
        theConnection.close(); 
    } 
    theConnection = new NetConnection(); 
    theConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 
    theConnection.client = client; 
    theConnection.connect(uri); 
} 
 
function makeConnection2(uri:String){ 
    if (theConnection2){ 
        theConnection2.close(); 
    } 
    theConnection2 = new NetConnection(); 
    theConnection2.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 
    theConnection2.client = client; 
    theConnection2.connect(uri); 
} 
 
function netStatusHandler(event:NetStatusEvent):void{ 
//В случаи, если пришел код переадресации, перенаправить подключение, если указано URI. 
    try{ 
        if (event.info.ex.code == 302){ 
            var redirectURI:String; 
            redirectURI = event.info.ex.redirect; 
            if (redirectURI.charCodeAt(redirectURI.length-1) == 13){ 
                redirectURI = redirectURI.slice(0,(redirectURI.length-1)); 
            } 
            makeConnection2(redirectURI); 
        } 
    } 
} 
 
init();

Остальные методы и свойства

Ярлыки: , ,

  1. Пока без комментариев.
  1. Пока нету.