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

Класс SharedObject

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

Класс SharedObject используется для хранения данных на сервере и организации общего доступа к данным клиентских приложений в режиме реального времени. Общие объекты могут быть временными или же хранится на сервере даже после того как приложение выгружено из памяти; можно рассматривать общие объекты схожими с устройствами передачи данных в режиме реального времени.

Примечание: Следующая информация дает пояснения классу SharedObject серверного языка ActionScript. Общие объекты можно создавать так же с помощью клиентского класса SharedObject.

Следующий список описывает самые распространенные пути использования общих объектов в серверном ActionScript:

  1. Хранение и организации общего доступа к данным на сервере. Общие объекты могут быть сохранены на сервере для последующего доступа к ним клиентов. Так, например, можно создать удаленный общий объект, постоянно находящийся на сервере (например, список телефонов). Каждый раз, когда клиент вносит изменения в общий объект, исправленные данные становятся доступными всем клиентам, которые в данный момент подключены к объекту или которые подключаются к нему позднее. Если объект также имеет локальное постоянство, а клиент изменяет данные, но при этом не подключен к серверу, данные копируются в удаленный общий объект при последующем подключении пользователя к объекту.

  2. Совместное использование данных в режиме реального времени. Общий объект может предоставить нескольким разным клиентам доступ к данным в режиме реального времени. Например, можно открыть удаленный общий объект, на котором хранится список пользователей, подключенных к дискуссионной группе, которую могут видеть все клиенты, подключенные к данному объекту. Когда пользователь входит или покидает дискуссионную группу, объект обновляется и все клиенты, подключенные к данному объекту, видят обновленный список пользователей дискуссионной группы.

    При использовании общих объектов в серверном ActionScript, необходимо знать и понимать следующую важную информацию:

    • Удаленные общие объекты, создаются с помощью метода SharedObject.get() серверного ActionScript; В серверном ActionScript нету метода для создания локальных общих объектов и поэтому с помощью серверного кода невозможно создать локальный общий объект на компьютере пользователя. Локальные общие объекты хранятся в памяти, или же в файлах с расширением .sol в случаи их локального постоянства.

    • Удаленные общие объекты, хранимые на сервере имеют расширение .fso и находятся в подпапке приложения создавшего их. Удаленные общие объекты на стороне клиента имеют расширение .sor и также находятся в подпапке приложения создавшего их.

    • Общин объекты на стороне сервера могут быть непостоянными ( то есть, существующими пока экземпляр приложения не будет выгружен из памяти) или же постоянный ( то есть, хранящимися на сервере в виде файлов даже после того как приложение выгружено из памяти).

    • Постоянные общие объекты создаются методом SharedObject.get() при указании true в качестве значения параметра persistence. Постоянные общие объекты позволяют поддерживать состояния приложений.

  3. Каждый удаленный общий объект, так же как и любой другой объект ActionScript имеет уникальное имя и содержит перечень свойств в виде пара „имя-значение“. Имя должно быть уникальным строковым а значение может быть любым типом объекта ActionScript.

    Примечание: В отличии от клиентских общих объектов, серверные объекты не имеют свойства data.
    • Метод SharedObject.getProperty() используется для получения значения свойства серверного общего объекта. Метод SharedObject.setProperty() используется для установки значения свойства серверного общего объекта.

    • Метод SharedObject.clear()очищает общий объект, удаляя все его свойства и их значения. для того что бы удалить несколько общих объектов используется метод application.clearSharedObjects().

    • Серверные общие объекты могут принадлежать как текущему экземпляру приложения, так и другому экземпляру приложения. Другой экземпляр приложения может находиться как на том же, так и на каком либо другом сервере. Ссылки на общие объекты, находящиеся на других экземплярах приложения называются проксироваными общими объектами.

    При написании серверного кода, который модифицирует несколько свойств объекта, с целью предотвращения попыток других клиентов изменить эти свойства в процессе их обновления можно вызывать SharedObject.lock() ограничивающий доступ клиентов к общим объектам. После этого следует вызывать SharedObject.unlock() для того что бы зафиксировать изменения и позволить совершать последующие изменения общего объекта. Вызов SharedObject.mark() в сочетании с методами lock() и unlock() доставляет события change всем подключенным к общему объекту клиентам.

    При получении ссылки на проксированый общий объект, все изменения, внесенные в общий объект, отправляются экземпляру собственнику. Успешные или неудавшиеся попытки изменений отправляются при помощи обработчика событий SharedObject.onSync(), если такой определен в приложении.

    Методы SharedObject.lock() и SharedObject.unlock() не могут быть использованы для блокирования и разблокировки проксированых общих объектов.

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

Flash Communication Server 1

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

Свойство

Описание

SharedObject.autoCommit

Булвево значение, в случаи (true) указывает на то, что сервер периодически сохраняет все постоянные общие объекты, в противном случаи это значение (false).

SharedObject.isDirty

Только чтение; булвево значение, в случаи (true) указывает на то, что со времени последнего сохранения общий объект был изменен, в противном случаи это значение (false).

SharedObject.name

Только чтение; Имя общего объекта.

SharedObject.resyncDepth

Целое число, указывающее на то, когда нужно совсем удалить все уничтоженные свойства общего объекта.

SharedObject.version

Только чтение; Текущая версия общего объекта.

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

Метод

Описание

SharedObject.clear()

Удаляет все свойства отдельного общего объекта и отправляет событие об очистке всем клиентам, подключенным к постоянному общему объекту.

SharedObject.close()

Убирает ссылку на общий объект.

SharedObject.commit()

Статический; сохраняет полностью определенный экземпляр постоянного общего объекта или же все постоянные общие объекты значением свойства isDirty которых является true.

SharedObject.flush()

Сохраняет текущее состояние постоянного общего объекта.

SharedObject.get()

Статический; создает общий объект или возвращает ссылку на уже существующий общий объект.

SharedObject.getProperty()

Выдает значение свойства с заданным именем для общего объекта.

SharedObject.getPropertyNames()

Перечисляет все имена свойств указанного общего объекта.

SharedObject.lock()

Блокирует общий объект.

SharedObject.mark()

Доставляет одним сообщением все события изменения общего объекта подключенным к нему клиентам.

SharedObject.purge()

Заставляет сервер удалить все уничтоженные свойства старше указанной версии.

SharedObject.send()

Выполняет метод клиентской части скрипта.

SharedObject.setProperty()

Обновляет значение свойства общего объекта.

SharedObject.size()

Возвращает общее число действительных свойств общего объекта.

SharedObject.unlock()

Разблокирует общий объект и разрешает остальным клиентам его обновление.

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

Обработчик событий

Описание

SharedObject.handlerName()

Обработчик событий, срабатывающий каждый раз, когда общий объект получает от клиентского приложения сообщение с тем же именем отправленное с помощью метода SharedObject.send().

SharedObject.onStatus()

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

SharedObject.onSync()

Срабатывает, как только в общем объекте происходят изменения.

Ярлыки: , ,

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