Discusión sobre el artículo "WebSocket para MetaTrader 5" - página 3

 
Renat Fatkhullin:

No tengo tiempo ahora, pero debería hacer un conjunto de implementaciones de CSocketRaw, CSocketTLS, CSocketHTTP en la librería estándar MQL5.

Si tengo 8 horas de tiempo libre, lo haré.

Gracias, ¡espera!

 
Renat Fatkhullin:

No tengo tiempo ahora, pero debería hacer un conjunto de implementaciones de CSocketRaw, CSocketTLS, CSocketHTTP en la librería estándar MQL5.

Si tengo 8 horas de tiempo libre, lo haré.

Es deseable empezar con algo simple, pero que realmente funcione, por ejemplo, obtener una respuesta de wss://echo.websocket.org.

 
¿Has conseguido conectarte a través de WSS?
 

Buen trabajo @Francis Dube, ¡Gracias!

¿Es posible crear un servicio MQL5 que actúe como servidor WebSocket? ¿Tiene algunos ejemplos?

 
Renat Fatkhullin:


La pregunta no está relacionada con el artículo, sino con la función de lectura de red.

He medido la ejecución de la función 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.21 17:34:35.110 Test    Bytes received 142   Total time: 2.860 ms   Avg time: 11.824 ms
2021.08.21 17:34:35.111 Test    Bytes received 852   Total time: 1.131 ms   Avg time: 11.819 ms
2021.08.21 17:34:35.113 Test    Bytes received 710   Total time: 1.874 ms   Avg time: 11.815 ms
2021.08.21 17:34:35.114 Test    Bytes received 142   Total time: 0.668 ms   Avg time: 11.810 ms
2021.08.21 17:34:35.117 Test    Bytes received 142   Total time: 2.551 ms   Avg time: 11.805 ms
2021.08.21 17:34:35.132 Test    Bytes received 0     Total time: 15.564 ms  Avg time: 11.807 ms
2021.08.21 17:34:35.148 Test    Bytes received 0     Total time: 15.616 ms  Avg time: 11.809 ms
2021.08.21 17:34:35.149 Test    Bytes received 0     Total time: 1.383 ms   Avg time: 11.804 ms
2021.08.21 17:34:35.151 Test    Bytes received 710   Total time: 1.855 ms   Avg time: 11.799 ms
2021.08.21 17:34:35.164 Test    Bytes received 142   Total time: 12.117 ms  Avg time: 11.800 ms
2021.08.21 17:34:35.179 Test    Bytes received 0     Total time: 15.530 ms  Avg time: 11.801 ms
2021.08.21 17:34:35.195 Test    Bytes received 0     Total time: 15.542 ms  Avg time: 11.803 ms
2021.08.21 17:34:35.210 Test    Bytes received 0     Total time: 15.570 ms  Avg time: 11.805 ms
2021.08.21 17:34:35.218 Test    Bytes received 0     Total time: 7.363 ms   Avg time: 11.803 ms
2021.08.21 17:34:35.226 Test    Bytes received 142   Total time: 8.143 ms   Avg time: 11.801 ms
2021.08.21 17:34:35.242 Test    Bytes received 0     Total time: 15.549 ms  Avg time: 11.803 ms
2021.08.21 17:34:35.257 Test    Bytes received 0     Total time: 15.554 ms  Avg time: 11.804 ms
2021.08.21 17:34:35.273 Test    Bytes received 0     Total time: 15.351 ms  Avg time: 11.806 ms
***
***
***


¿Por qué un tiempo de ejecución de la función tan grande?
¿Es posible optimizar la función de lectura por su parte?

 

Hey gran trabajo,

Acabo de probar su ea y se conectó a mi servidor websocket C #, sin embargo, después de que se conecta y envía el mensaje de la ficha diario se extiende este error

2022.02.08 07:33:36.176 Websocketclient_test (XAUUSD,M15) [MQL error ID: 5270][Is Socket Readable ][Línea: 238][Función: CSocket::Readable].


alguna idea de cómo puedo conseguir esto fijo. También enviando de nuevo a Mt4 no parece funcionar

 

@Francis Dube Gracias por esta biblioteca. Hay un pequeño cambio que tuve que hacer para que funcione con URLs después de /, por ejemplo /ws/..

Sin embargo encuentro que no es estable y no siempre funciona, mientras que tu versión WinAPI funciona mucho mejor.

Como esta es una librería nativa, ¿tenéis una versión mejorada con los problemas de estabilidad solucionados?

Gracias

 
Renat Fatkhullin biblioteca estándar MQL5 .

Habra 8 horas de tiempo libre, lo hare.

Han pasado dos años y todavía no hay respuesta.

 

¿No se puede utilizar esta función como archivos de mapeo de memoria?

Para no tener que reescribir el código y utilizar una solución ya hecha.

Por supuesto que es fantástico, pero esta función debe ser así: Escribir información fuera de la terminal.

 
Racheal Samson #:

Han pasado dos años y aún no hay respuesta.

Así que los prometidos 3 años de espera ... No es mucho tiempo ahora - un año de espera ))