BroadcastGlobalMessage

From SunFlurry wiki
Jump to: navigation, search
  BroadcastGlobalMessage (Доставка сообщений)
Объект:Функции общего назначения
Статус разработки: Частичная реализация
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в число, строку, неверный аргумент
Визуальность:Да

Функция рассылает пакеты, которые вызывают исполнения событий OnMessage для всех открытых форм (в момент когда они активны или когда они станут активными), в текущей системе или глобально всем клиентам сервера. В последнем случае, нужно быть осторожным, чтобы не перегружать сервер внезапным большим количеством запросов, даже с учетом того, что серверная часть использует особую систему замедления отправки запросов клиентам. Для форм будет вызвано прерывающее визуальное событие OnMessage. Функция возвращается сразу после успешной отправки сообщения или ошибке при отправке. Если функция выполнена успешно, доставка сообщения будет гарантирована, если форма не будет закрыта до того, как ее удастся осуществить.

Синтаксис

BroadcastGlobalMessage(<Код сообщения (INT)>,<Содержимое сообщения (STRING)>,<Для всех пользователей (INT)>=0):<Сообщение успешно отправлено (INT)>

Аргументы

  • <Код сообщения (INT)> - Произвольный код сообщения, коды 1-10000 рекомендуется использовать для нужд проекта, остальные для нужд внешних обработок.
  • <Содержимое сообщения (STRING)> - (необязательный аргумент) Текстовый параметр, котрый будет получен обработчиком события OnMessage в виде переменной Param. Переменная Option при этом будет всегда пустой.
  • <Для всех пользователей (INT)> - (необязательный аргумент) Режим отправки сообщения, может принимать значения:
    • 0 (по умолчанию) -- отправка сообщения только для форм текущего клиента.
    • 1 -- отправка сообщения всем формам всем пользователям сервера. Сообщения такого рода отправляются каждому клиенту по очереди с небольшим периодом ожидания, чтобы исключить внезапную загрузку сервера.

Возвращаемое значение

Возвращает 0 если сообщение не было доставлено (ошибка сервера и пр.), в ином случае возвращает 1.

Примеры

//Отослать всем формам всех клиентов сообщение с кодом 15000 и параметром "Сообщение".
BroadcastGlobalMessage(15000,"Сообщение",1);