WebSocket incluso en implementaciones normales, rápidas y correctas es algo bastante caprichoso. Está contraindicado hacerlo en MQL
imho: o bien debe aparecer de los desarrolladores de terminales o ser proporcionado por DLLs externas
¿Lo has probado en servidores públicos externos, especialmente con TLS? Sería estupendo ver algún ejemplo.
PS. Te lo pregunto porque tu prueba no funciona con wss://echo.websocket.org (adjunto el log, BTW - ¿por qué escribes tanta información inútil?). Pure ws (puerto 80) funciona bien. En el pasado también intenté ejecutar mi implementación de WebSockets en MQL5, pero fallé porque los sockets de MQL tienen algunas complejidades con la capa TLS. Parece que todavía no están resueltos. Y wss es una necesidad hoy en dia, porque todos los servidores de produccion usan TLS y rechazan conexiones no seguras.
WebSocket incluso en implementaciones normales, rápidas y correctas es una cosa bastante caprichosa. No se debe hacer en MQL
imho: o bien debe aparecer de los desarrolladores de terminales o ser proporcionado por DLLs externas.
Eso es basura.
No es una tontería sobre MQL en absoluto. Hubo problemas con TLS (escribí sobre ellos en el foro, pero no esperé una solución) y todavía los hay. El ejemplo del artículo no funciona. He adjuntado el log al artículo original en inglés.
- 2020.11.25
- www.mql5.com
Eso es basura.
Hay un viejo problema wss allí: en la función estándar SocketIsReadable ()
Es elemental para eludir, pero sin esta función.
uint len = 1024; //SocketIsReadable(socket);
Hay un viejo problema wss allí: en la función estándar SocketIsReadable ()
Solución es elemental, pero ya sin esta función.
¿Hay alguna justificación para esto? ¿Cuál es el número mágico y por qué estaría bien para una longitud de mensaje de 256 o 1500, por ejemplo?
Hay un viejo problema wss allí: en la función estándar SocketIsReadable ()
Solución es elemental, pero ya sin esta función
Usted simplemente no entiende y no sabe cómo utilizar esta función.
Esta función da instantáneamente el número de bytes disponibles en el buffer de entrada y no te dice que el socket está vivo. La función es muy importante y te permite no entrar en espera síncrona, sino leer los datos porción por porción sin perder el control sobre el programa.
Y las funciones TLS también son correctas - están dadas para usuarios entrenados que saben cómo y en qué secuencia usarlas. No son para los que "llaman y ya está".
No solo eso, las funciones socket y tls son en forma pura las mismas que usa terminal para conexiones raw/tls/https. Es decir, todo funciona bien. Estas mismas implementaciones funcionan en nuestras soluciones de alta carga.
Las funciones de red raw no son para principiantes ni para un uso ingenuo. Uno debe entender los principios y peculiaridades de la interacción de red lo suficientemente bien. Y si estamos hablando de TLS, entonces los métodos y la secuencia de procesamiento del proceso de handshake.- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado WebSocket para MetaTrader 5:
Antes de que aparecieran las funciones de red en la API MQL5 actualizada, las aplicaciones MetaTrader tenían una capacidad limitada para conectarse e interactuar con servicios basados en el protocolo WebSocket. Ahora, la situación es distinta. En este artículo, analizaremos la implementación de la biblioteca WebSocket en el MQL5 puro. Asimismo, presentaremos una breve descripción del protocolo WebSocket y una guía paso a paso sobre el uso de la biblioteca resultante.
A continuación, le mostramos un vídeo de un programa que funciona al conectarse al servidor.
Autor: Francis Dube