Обсуждение статьи "Многопоточный асинхронный WebRequest на MQL5 своими руками" - страница 7

 

Файл в примере multiwebclient  отправлят только 1 раз при клике на график. при нескольких кликах запрос на http сервер не шлется. (повникаю в исходники ваши) Возможно надо предварительно создать не в INIT а каждый раз создавать по CLICK на графике. 

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

 А у вас нет примера чтобы отправлялся json сообщение ? Также не лишним кому- то чтобы была проверка на закрытие графиков.

ПО JSON

Например создать класс json и при сеттерах заполнять его. Добавление массивов, добавление элементов, типов данных(своих не простых).

 И пример, прям рабочий советник, чтобы можно было делать отправку из своей функции, например при появлении нового бара слался JSON запрос.

Многим было бы это полезно.

 
Sergei Poliukhov #:

Файл в примере multiwebclient  отправлят только 1 раз при клике на график. при нескольких кликах запрос на http сервер не шлется. (повникаю в исходники ваши) Возможно надо предварительно создать не в INIT а каждый раз создавать по CLICK на графике. 

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

 А у вас нет примера чтобы отправлялся json сообщение ? Также не лишним кому- то чтобы была проверка на закрытие графиков.

ПО JSON

Например создать класс json и при сеттерах заполнять его. Добавление массивов, добавление элементов, типов данных(своих не простых).

 И пример, прям рабочий советник, чтобы можно было делать отправку из своей функции, например при появлении нового бара слался JSON запрос.

Многим было бы это полезно.

Все 100% работало как описано, на момент написания статьи, т.е. по клику параллельно отправлялось 3 запроса на указанные по-умолчанию 3 сервера. Для поиска проблем нужны настройки и логи. Закрытие графиков обрабатывается и менеджеру отправляется уведомление - посмотрите код.

void OnDeinit(const int reason)
{
  if(manager)
  {
    Print("WebRequest Pool Manager closed, ", ChartID());
    for(int i = 0; i < pool.size(); i++)
    {
      if(CheckPointer(pool[i]) == POINTER_DYNAMIC)
      {
        // let know workers they are not needed anymore
        EventChartCustom(pool[i].getChartID(), TO_MSG(MSG_DEINIT), ChartID(), 0.0, NULL);
      }
    }
    GlobalVariableDel(GVTEMP);
  }
  else
  {
    Print("WebRequest Worker closed, ", ChartID());
    // let know the manager that this worker is not available anymore
    EventChartCustom(ManagerChartID, TO_MSG(MSG_DEINIT), ChartID(), 0.0, NULL);
    ObjectDelete(0, OBJ_LABEL_NAME);
    ChartClose(0);
  }
  Comment("");
}

После выхода статьи в обсуждении был выложен улучшенный вариант запуска через объекты-чарты.

По json есть много материалов на сайте, а свои наработки по "чистому" json я не публиковал и сейчас у меня нет времени этим заниматься.

Обсуждение статьи "Многопоточный асинхронный WebRequest на MQL5 своими руками" - Запустите WebRequest с помощью объектов-графиков, в которых применяется шаблон с экспертом-помощником.
Обсуждение статьи "Многопоточный асинхронный WebRequest на MQL5 своими руками" - Запустите WebRequest с помощью объектов-графиков, в которых применяется шаблон с экспертом-помощником.
  • 2018.11.12
  • Реter Konow
  • www.mql5.com
потому что не получается передать в них параметр при запуске - похоже. по аналогии с экспертами - похоже на счастливый случай. Выкладываю альтернативный вариант запуска веб-запросов - с помощью объектов-графиков