- Отправка Push-уведомлений
- Отправка уведомлений по электронной почте
- Отправка файлов на сервер FTP
- Обмен данными с веб-сервером по протоколу HTTP/HTTPS
- Установление и разрыв соединения сетевого сокета
- Проверка состояния сокета
- Настройка таймаутов передачи и приема данных сокетами
- Чтение, запись данных по незащищенному сокет-соединению
- Подготовка защищенного сокет-соединения
- Чтение и запись данных по защищенному сокет-соединению
Отправка Push-уведомлений
Как известно, терминал позволяет отсылать push-уведомления от служб компании MetaQuotes, самого терминала и MQL-программ на мобильное устройство с операционными системами iOS или Android. Для работы этой технологии используется MetaQuotes ID — уникальный идентификатор "пользователя" (см. врезку). MetaQuotes ID выделяется при установке мобильной версии терминала на гаджет пользователя, после чего ID следует указать в настройках терминала, на закладке Уведомления (через запятую можно задать несколько идентификаторов). После этого функционал по отправке push-уведомлений становится доступен для MQL-программ.
На самом деле MetaQuotes ID идентифицирует не пользователя, а конкретную установку мобильного терминала, которых у пользователя может быть несколько, причем ID не связан по-умолчанию с регистрацией в сообществе mql5.com, хотя такую привязку можно указать на сайте. Не следует путать регистрацию пользователя в сообществе и MetaQuotes ID. Для работы с уведомлениями пользователь терминала не обязан логиниться в сообществе.
bool SendNotification(const string text)
Функция SendNotification посылает push-уведомления с заданным текстом во все мобильные терминалы, имеющие MetaQuotes ID из настроек терминала. Длина сообщения — не более 255 символов.
При успешной отправке уведомления из терминала функция возвращает true, а в случае ошибки — false. Возможные коды ошибок _LastError:
- 4515 – ERR_NOTIFICATION_SEND_FAILED — проблемы со связью;
- 4516 – ERR_NOTIFICATION_WRONG_PARAMETER — неверный параметр, например, пустая строка;
- 4517 – ERR_NOTIFICATION_WRONG_SETTINGS — MetaQuotes ID неверно настроен или отсутствует;
- 4518 – ERR_NOTIFICATION_TOO_FREQUENT — слишком частые вызовы функции.
При наличии соединения с сервером отправка происходит моментально, и, если устройство пользователя находится в онлайн, сообщение должно достичь адресата, однако гарантировать доставку в общем случае нельзя. Обратного уведомления программы о доставке сообщения не предусмотрено. История push-сообщений на сервере для отложенной доставки не сохраняется.
Для функции установлены ограничения на частоту использования: не более 2-х вызовов в секунду и не более 10 в минуту.
В тестере стратегий функция SendNotification не выполняется.
К книге прилагается простой скрипт NetNotification.mq5, отправляющий тестовое уведомление при наличии правильных настроек.
void OnStart()
|