Discussão do artigo "WebRequest multi-threaded assíncrono em MQL5" - página 7

 

O arquivo no exemplo do multiwebclient envia apenas uma vez ao clicar no gráfico. No caso de vários cliques, a solicitação ao servidor http não é enviada. (Talvez seja necessário pré-criar, não no INIT, mas sempre que for criado ao clicar no gráfico.

Pensei que o objeto fosse excluído após o fechamento do gráfico ou do terminal.

Você tem um exemplo para enviar uma mensagem json? Também não é supérfluo que alguém tenha uma verificação para fechar gráficos.

SOFTWARE JSON

Por exemplo, criar uma classe json e preenchê-la com setters. Adicionar matrizes, adicionar elementos, tipos de dados (não é simples).

E um exemplo, um EA funcional, para que você possa fazer o envio a partir de sua função, por exemplo, quando uma nova barra aparecer, uma solicitação JSON será enviada.

Muitas pessoas achariam isso útil.

 
Sergei Poliukhov do terminal.

Você tem um exemplo para enviar uma mensagem json? Também não é supérfluo que alguém tenha uma verificação para fechar os gráficos.

SOFTWARE JSON

Por exemplo, criar uma classe json e preenchê-la com setters. Adicionar matrizes, adicionar elementos, tipos de dados (não é simples).

E um exemplo, um consultor de trabalho direto, para que você possa fazer o envio a partir de sua função, por exemplo, quando uma nova barra aparecer, uma solicitação JSON será enviada.

Muitas pessoas achariam isso útil.

Tudo funcionou 100% conforme descrito, no momento da redação do artigo, ou seja, ao clicar, 3 solicitações foram enviadas em paralelo para os 3 servidores padrão. São necessárias configurações e registros para encontrar problemas. Os fechamentos de gráficos são processados e uma notificação é enviada ao gerente - veja o código.

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)
      {
        // informar aos trabalhadores que eles não são mais necessários
        EventChartCustom(pool[i].getChartID(), TO_MSG(MSG_DEINIT), ChartID(), 0.0, NULL);
      }
    }
    GlobalVariableDel(GVTEMP);
  }
  else
  {
    Print("WebRequest Worker closed, ", ChartID());
    // informar ao gerente que esse funcionário não está mais disponível
    EventChartCustom(ManagerChartID, TO_MSG(MSG_DEINIT), ChartID(), 0.0, NULL);
    ObjectDelete(0, OBJ_LABEL_NAME);
    ChartClose(0);
  }
  Comment("");
}

Depois que o artigo foi publicado, uma versão aprimorada do lançamento por meio de objetos de gráfico foi postada na discussão.

Há muitos materiais sobre json no site, mas ainda não publiquei meu trabalho sobre json "puro" e não tenho tempo para fazê-lo agora.

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