A pergunta não está relacionada ao artigo, mas sim à função de leitura de rede.
Medi a execução da função SocketTlsReadAvailable()
double avgDelay = 0.0;
double it = 0.0;
//-----------------------------------------------------------------------------void Recv()
{
ulong start = GetMicrosecondCount();
int qtyByte = SocketTlsReadAvailable(socket, buf, len);
double delay = (GetMicrosecondCount()-start)/1000.0;
avgDelay += delay;
PrintFormat("Bytes received %d Total time: %.3f ms Avg time: %.3f ms", qtyByte, delay, avgDelay/++it);
}
2021.08.2117:34:35.110 Test Bytes received 142 Total time: 2.860 ms Avg time: 11.824 ms
2021.08.2117:34:35.111 Test Bytes received 852 Total time: 1.131 ms Avg time: 11.819 ms
2021.08.2117:34:35.113 Test Bytes received 710 Total time: 1.874 ms Avg time: 11.815 ms
2021.08.2117:34:35.114 Test Bytes received 142 Total time: 0.668 ms Avg time: 11.810 ms
2021.08.2117:34:35.117 Test Bytes received 142 Total time: 2.551 ms Avg time: 11.805 ms
2021.08.2117:34:35.132 Test Bytes received 0 Total time: 15.564 ms Avg time: 11.807 ms
2021.08.2117:34:35.148 Test Bytes received 0 Total time: 15.616 ms Avg time: 11.809 ms
2021.08.2117:34:35.149 Test Bytes received 0 Total time: 1.383 ms Avg time: 11.804 ms
2021.08.2117:34:35.151 Test Bytes received 710 Total time: 1.855 ms Avg time: 11.799 ms
2021.08.2117:34:35.164 Test Bytes received 142 Total time: 12.117 ms Avg time: 11.800 ms
2021.08.2117:34:35.179 Test Bytes received 0 Total time: 15.530 ms Avg time: 11.801 ms
2021.08.2117:34:35.195 Test Bytes received 0 Total time: 15.542 ms Avg time: 11.803 ms
2021.08.2117:34:35.210 Test Bytes received 0 Total time: 15.570 ms Avg time: 11.805 ms
2021.08.2117:34:35.218 Test Bytes received 0 Total time: 7.363 ms Avg time: 11.803 ms
2021.08.2117:34:35.226 Test Bytes received 142 Total time: 8.143 ms Avg time: 11.801 ms
2021.08.2117:34:35.242 Test Bytes received 0 Total time: 15.549 ms Avg time: 11.803 ms
2021.08.2117:34:35.257 Test Bytes received 0 Total time: 15.554 ms Avg time: 11.804 ms
2021.08.2117:34:35.273 Test Bytes received 0 Total time: 15.351 ms Avg time: 11.806 ms
***
***
***
Por que o tempo de execução da função é tão grande? É possível otimizar a função de leitura do seu lado?
Acabei de testar seu EA e ele se conectou ao meu servidor websocket em C#, porém, depois de se conectar e enviar a mensagem, a guia do diário apresenta este erro
Não tenho tempo agora, mas devo criar um conjunto de implementações de CSocketRaw, CSocketTLS e CSocketHTTP na biblioteca MQL5 padrão.
Se eu tiver 8 horas de tempo livre, farei isso.
Obrigado, estou aguardando!
Não tenho tempo agora, mas devo criar um conjunto de implementações de CSocketRaw, CSocketTLS e CSocketHTTP na biblioteca MQL5 padrão.
Se eu tiver 8 horas de tempo livre, farei isso.
É desejável começar com algo simples, mas que realmente funcione, por exemplo, para obter uma resposta de wss://echo.websocket.org.
Bom trabalho @Francis Dube, obrigado!
É possível criar um serviço MQL5 que atue como servidor WebSocket? Você tem alguns exemplos?
A pergunta não está relacionada ao artigo, mas sim à função de leitura de rede.
Medi a execução da função SocketTlsReadAvailable()
Por que o tempo de execução da função é tão grande?
É possível otimizar a função de leitura do seu lado?
Olá, ótimo trabalho,
Acabei de testar seu EA e ele se conectou ao meu servidor websocket em C#, porém, depois de se conectar e enviar a mensagem, a guia do diário apresenta este erro
2022.02.08 07:33:36.176 Websocketclient_test (XAUUSD,M15) [MQL error ID: 5270][Is Socket Readable ][Line: 238][Function: CSocket::Readable]
Alguma ideia de como posso consertar isso? Além disso, enviar de volta para o Mt4 parece não ter funcionado
@Francis Dube Obrigado por essa biblioteca. Tive que fazer uma pequena alteração para que ela funcionasse com URLs após /, por exemplo, /ws/.
No entanto, acho que ela não é estável e nem sempre funciona, enquanto sua versão WinAPI funciona muito melhor.
Como essa é uma biblioteca nativa, você tem uma versão aprimorada com os problemas de estabilidade corrigidos?
Muito obrigado
Haverá 8 horas de tempo livre, eu farei isso.
Já se passaram dois anos e ainda não obtive resposta.
Essa função não pode ser usada como arquivos de mapeamento de memória?
Para que não tenhamos que reescrever o código e usar uma solução pronta.
É claro que isso é fantástico, mas essa função deveria ser assim: gravar informações fora do terminal.
Já se passaram dois anos e ainda não obtivemos resposta.
Portanto, os prometidos 3 anos de espera... Não é muito tempo agora - um ano de espera ))