Обсуждение статьи "WebSocket для MetaTrader 5" - страница 3

 
Renat Fatkhullin:

Сейчас нет времени, но надо бы мне сделать набор CSocketRaw, CSocketTLS, CSocketHTTP реализаций в стандартной библиотеке MQL5.

Будет часов 8 свободного времени, сделаю.

Спасибо, ждём!

 
Renat Fatkhullin:

Сейчас нет времени, но надо бы мне сделать набор CSocketRaw, CSocketTLS, CSocketHTTP реализаций в стандартной библиотеке MQL5.

Будет часов 8 свободного времени, сделаю.

Желательно начать с чего-то простого, но реально рабочего, например, получить ответ от wss://echo.websocket.org.

 
Удалось ли вам подключиться через WSS?
 

Отличная работа @Francis Dube, спасибо!

Возможно ли создать MQL5-сервис, выполняющий роль WebSocket-сервера? У вас есть примеры?

 
Renat Fatkhullin:


Вопрос не относится к статье, но связан с сетевой функцией чтения.

Сделал замер выполнения функции 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
***
***
***


Почему такое большое время выполнения функции?
Можно ли с вашей стороны, оптимизировать функции чтения?

 

Отличная работа,

Я только что протестировал вашу ea, и она действительно подключилась к моему серверу C# websocket, однако после подключения и отправки сообщения на вкладке журнала появилась эта ошибка

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


Есть идеи, как я могу это исправить. Также отправка обратно на Mt4, похоже, не сработала

 

@Francis Dube Спасибо за эту библиотеку. Есть небольшое изменение, которое мне пришлось сделать, чтобы она работала с URL после /, например /ws/.

Однако я обнаружил, что она не стабильна и не всегда работает, в то время как ваша версия WinAPI работает намного лучше.

Поскольку эта библиотека является родной, есть ли у вас улучшенная версия с исправленными проблемами стабильности?

Спасибо

 
Renat Fatkhullin # :

Now I don't have time, but I should make a set of CSocketRaw, CSocketTLS, CSocketHTTP implementations in the MQL5 standard library .

There will be 8 hours of free time, I will do.

Прошло уже два года, а ответа до сих пор нет.

 

А нельзя эту функцию использовать как Memory Maping Files?

Чтобы код не переписывать а использовать уже готовое решение.

Конечно фантастика но эта функция такой и должна быть на самом деле: Записывать информацию за  пределы терминала. 

 
Racheal Samson #:

Прошло уже два года, а ответа до сих пор нет.

Так обещанного 3 года ждут... осталось совсем немного - год подождать ))