ГлавнаяСправка по использованию серверного ActionScript › Класс Client

Класс Client

Класс Client: Методы и свойства

Класс Client предоставляет возможность управления каждым пользовательским, или так называемым клиентским подключением к экземпляру приложения Flash Media Server. Сервер автоматически создает объект Client при подключении пользователя к приложению; объект уничтожается, когда пользователь отключается от приложения; Пользователи имеют уникальные объекты Client для каждого приложения и каждый раз когда они подключаются к тому или другому приложению; Тысячи объектов Client могут быть активны одновременно.

Вы можете использовать свойства объекта Client для того что бы узнать версию, платформу и IP адрес каждого клиента. Вы так же можете устанавливать частные случаи прав доступа чтения и записи к различным ресурсам приложения, таким как объекты Stream (видео и аудио потоки), shared objects (общие объекты). Используйте методы класса Client для установки и определения пропускной способности канала пользователя и вызова методов на стороне клиента.

Если вызывается NetConnection.call() со стороны клиентской части скрипта, метод, который вызывается на стороне сервера должен быть методом класса Client. В серверном скрипте вы должны определить каждый метод, который будет вызываться со стороны клиентской части приложения. Вы так же можете вызывать любой метод определенный в серверной части скрипта напрямую из экземпляра класса Client созданного на серверной стороне приложения.

Если все экземпляры класса Client (каждый отдельный клиент в приложении) требуют одинаковых методов или свойств, эти методы и свойства можно добавить к самому классу вместо того что бы назначать их к каждому отдельному экземпляру класса. Этот процесс называется расширение класса. Для расширения класса, вместо определения методов в функции конструкторе класса или же вместо назначения методов для частных случаев экземпляра класса следует назначать методы к свойству prototype функции конструктора класса. Когда методы и свойства назначены свойству prototype они автоматически становятся доступны всем экземплярам класса.

Следующий код демонстрирует то, как назначать методы и свойства экземпляру класса. В обработчике событий application.onConnect() экземпляр клиент clientObj передается серверной части скрипта как параметр. Далее можно назначать свойства и методы к экземпляру клиент.

application.onConnect = function(clientObj){ 
    clientObj.birthday = myBDay;  
    clientObj.calculateDaysUntilBirthday = function(){ 
        // исполняемый код. 
    } 
};

Выше описан вполне работающий вариант, но требующий исполнения каждый раз, когда клиент подключается к приложению. Если нужно что бы одни и те же методы и свойства были доступны всем клиентам массива application.clients без того что бы определять их каждый раз, следует их назначить свойству prototype класса Client.

Есть два действия, которые нужно предпринять для расширения встроенных классов при помощи свойства prototype. Выполнять эти два действия можно в любой последовательности. Следующий пример демонстрирует первый шаг к расширению встроенного класса Client, написание функции, которую впоследствии нужно назначить свойству prototype:

// Шаг первый: написание функции. 
 
function Client_getWritePermission(){ 
// Свойство writeAccess является встроенным для класса Client. 
    return this.writeAccess; 
} 
 
function Client_createUniqueID(){ 
    var ipStr = this.ip; 
// Свойство ip является встроенным для класса Client. 
    var uniqueID = "re123mn" 
// Вам нужно написать код строкой выше 
// который будет возвращать уникальный ID для каждого экземпляра клиент. 
    return uniqueID; 
} 
 
// Шаг второй: присвоить прототип методов к функции. 
 
Client.prototype.getWritePermission = Client_getWritePermission; 
Client.prototype.createUniqueID = Client_createUniqueID; 
 
// Лучшие традиции именования методов класса предполагают именование метода 
// начиная с имени класса перед нижним подчеркиванием.

Так же можно присваивать свойства к prototype, как описано в примере ниже:

Client.prototype.company = "Adobe";

Методы доступны каждому экземпляру, поэтому внутри application.onConnect() в который передается clientObj как параметр, можно писать следующий код:

application.onConnect = function(clientObj){ 
    var clientID = clientObj.createUniqueID(); 
    var clientWritePerm = clientObj.getWritePermission(); 
};

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

Flash Communication Server 1

Краткое описание свойств

Свойство

Описание

Client.agent

Только чтение; версия и платформа клиента.

Client.audioSampleAccess

Дает возможность Flash Player получить доступ к несжатым звуковым данным потоков в указных папках.

Client.id

Только чтение; уникальный строковой идентификатор клиента.

Client.ip

Только чтение; Строкове значение IP адреса клиента.

Client.pageUrl

Только чтение; Строкове значение содержащее URL страницы в которую встроен SWF файл клиентского приложения.

Client.protocol

Только чтение; Строкове значение указывающее протокол, по которому клиент подключился к серверу.

Client.readAccess

Строкове значение директорий содержащих ресурсы приложения (общие объекты и потоки) к которым клиент имеет доступ в режиме чтения.

Client.referrer

Только чтение; Строкове значение, содержащее URL файла SWF или же сервера откуда было вызвано текущее подключение.

Client.secure

Только чтение; Булево значение указывающее на то является ли соединение защищенным SSL (true) или
(false) если таковым не является.

Client.uri

Только чтение; URI указанное клиентом при подключении к экземпляру приложения.

Client.videoSampleAccess

Дает возможность Flash Player получить доступ к несжатым видео данным потоков находящимся в указанных папках.

Client.virtualKey

Виртуальное нанесение клиентского соединения на стороне сервера.

Client.writeAccess

Предоставляет возможность записи в указанные директории содержащие ресурсы приложения (общие объекты и потоки) для данного клиента.

Краткое описание методов

Метод

Описание

Client.call()

Исполняет метод на стороне клиента или же на другом сервере.

Client.checkBandwidth()

Метод используется на стороне клиента для определения пропускной способности канала.

Client.getBandwidthLimit()

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

Client.getStats()

Возвращает статистические данные о клиенте.

Client.ping()

Отправляет так называемое ”ping“ сообщение клиенту и ожидает ответа.

Client.remoteMethod()

Срабатывает когда клиент или другой сервер вызывают метод NetConnection.call().

Client.__resolve()

Обеспечивает значения неопределенных (undefined) свойств.

Client.setBandwidthLimit()

Устанавливает максимальную пропускную способность от клиента к серверу, от сервера к клиенту или для обоих случаев.

Ярлыки: , ,

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