Diskussion zum Artikel "Websockets für MetaTrader 5" - Seite 3

 
Renat Fatkhullin:

Ich habe jetzt keine Zeit, aber ich sollte einen Satz von CSocketRaw, CSocketTLS, CSocketHTTP-Implementierungen in der Standard-MQL5-Bibliothek machen.

Wenn ich 8 Stunden freie Zeit habe, werde ich es tun.

Danke, ich warte!

 
Renat Fatkhullin:

Ich habe jetzt keine Zeit, aber ich sollte einen Satz von CSocketRaw, CSocketTLS, CSocketHTTP-Implementierungen in der Standard-MQL5-Bibliothek machen.

Wenn ich 8 Stunden freie Zeit habe, werde ich es tun.

Es ist wünschenswert, mit etwas einfachem, aber wirklich funktionierendem zu beginnen, zum Beispiel eine Antwort von wss://echo.websocket.org zu erhalten .

 
Konnten Sie eine Verbindung über WSS herstellen?
 

Gute Arbeit @Francis Dube, Danke!

Ist es möglich, einen MQL5-Dienst zu erstellen, der als WebSocket-Server fungiert? Haben Sie einige Beispiele?

 
Renat Fatkhullin:


Die Frage bezieht sich nicht auf den Artikel, sondern auf die Netzwerklesefunktion.

Ich habe die Ausführung der Funktion SocketTlsReadAvailable() gemessen

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
***
***
***


Warum eine so lange Ausführungszeit der Funktion?
Ist es möglich, die Lesefunktion von Ihrer Seite aus zu optimieren?

 

Hey tolle Arbeit,

Ich habe gerade Ihre ea getestet und es hat eine Verbindung zu meinem C#-Websocket-Server, jedoch, nachdem es verbindet und sendet die Nachricht Die Registerkarte Journal überspannt diesen Fehler

2022.02.08 07:33:36.176 Websocketclient_test (XAUUSD,M15) [MQL error ID: 5270][Is Socket Readable ][Line: 238][Function: CSocket::Readable]


irgendeine Idee, wie ich dies behoben bekommen kann. Auch das Zurücksenden an Mt4 scheint nicht zu funktionieren

 

@Francis Dube Vielen Dank für diese Bibliothek. Es gibt eine kleine Änderung, die ich vornehmen musste, damit sie mit URLs nach /, z.B. /ws/. funktioniert.

Ich finde jedoch, dass sie nicht stabil ist und nicht immer funktioniert, während Ihre WinAPI-Version viel besser funktioniert.

Da es sich hier um eine native Bibliothek handelt, haben Sie eine verbesserte Version, in der die Stabilitätsprobleme behoben sind?

Ich danke Ihnen dafür.

 
Renat Fatkhullin MQL5-Standardbibliothek machen.

Es wird 8 Stunden freie Zeit sein, werde ich tun.

Es ist zwei Jahre her und immer noch keine Antwort.

 

Kann diese Funktion nicht als Memory Maping Files verwendet werden?

Damit wir den Code nicht umschreiben müssen und eine vorgefertigte Lösung verwenden können.

Natürlich ist es fantastisch, aber diese Funktion sollte wie folgt sein: Schreiben Sie Informationen außerhalb des Terminals.

 
Racheal Samson #:

Es ist zwei Jahre her und immer noch keine Antwort.

Also die versprochenen 3 Jahre Wartezeit ... Es ist nicht lange jetzt - ein Jahr zu warten ))