IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

Сегодня будем разбираться с тем, как делать из обычного коннектора OsEngine — коннектор, доступный для подключения PROXY. Это иногда нужно для мультиконнекторов в случае, если брокер блокирует множество запросов по IP-адресу.PROXY сервер в данном случае позволяет подменять IP-адрес нашего ПК, чтобы при одновременной торговле через десятки и сотни счетов нам не прилетел бан по IP-адресу за слишком частое обращение к серверам брокера. *серия постов «Коннекторы к OsEngine» — для программистов. Если Вы пользуетесь OsEngine, как пользователь, можете дальше не читать. 1.Идём в разрешения коннектора, в который хотим добавить возможность настраивать Proxy.В нашем случае это будет ALOROpenApi: Включаем разрешение IsSupports_ProxyFor_MultipleInstancesвTRUE: 2. Открываем исходники коннектора: 3. Модернизируем метод Connect. Сохраняем Proxy.Метод Connect вызывается каждый раз, когда хранилище коннекторов хочет, чтобы конкретная реализация коннектора начала процедуру подключения к бирже.В метод Connect, если Вы настроили ProxyHub, будет подаваться WebProxy –класс, содержащий рабочие адреса и ключи для доступа к Proxy.Создаём поле private WebProxy _myProxy. В него мы будем сохранять на каждом подключении коннектора прокси, который нам передала программа.Сам WebProxy передаётся в коннектор через параметр метода Connect, либо не передаётся, тогда в него будет передан null.В самом начале метода Connect нужно сохранять прокси в ранее выделенное под это поле. 4. Добавляем Proxy в Rest запросы через RestClient.На примере запроса бумаг в ALOR:Добавляем блок кода, который проверяет наличие прокси. И если Proxy есть, устанавливаем его в клиент. После этого у запроса будет подменён IP. 5. Добавляем Proxy в Rest запросы через WebRequest.Если в Вашем коннекторе использован WebRequest, в него надо загрузить Proxy следующим образом: 6. Добавляем Proxy в Rest запросы через HttpClient.HttpClient нужно создавать определённым образом, чтобы во время создания в него загружался Proxy. Это чуть сложнее, но необходимо, т.к. HttpClient используется потом многократно.Смотрим на примере коннектора BingXServerSpot: Процедура создания HttpClientбез Proxy.Процедура создания HttpClient, используя Proxy. 7. Добавляем Proxy во время создания WebSocket.Каждому сокету, создаваемому внутри коннектора, необходимо указать Proxy.Пример смотрим в AlorServer: Удачных алгоритмов!Комментарии открыты для друзей! OsEngine: https://github.com/AlexWan/OsEngine Поддержка OsEngine: https://t.me/osengine_official_supportРегистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open Сайт АЛОР БРОКЕР: https://www.alorbroker.ru Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php  

Май 6, 2025 - 11:24
 0
IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

Сегодня будем разбираться с тем, как делать из обычного коннектора OsEngine — коннектор, доступный для подключения PROXY. Это иногда нужно для мультиконнекторов в случае, если брокер блокирует множество запросов по IP-адресу.

PROXY сервер в данном случае позволяет подменять IP-адрес нашего ПК, чтобы при одновременной торговле через десятки и сотни счетов нам не прилетел бан по IP-адресу за слишком частое обращение к серверам брокера. 

*серия постов «Коннекторы к OsEngine» — для программистов. Если Вы пользуетесь OsEngine, как пользователь, можете дальше не читать.

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

1.Идём в разрешения коннектора, в который хотим добавить возможность настраивать Proxy.

В нашем случае это будет ALOROpenApi:

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

Включаем разрешение IsSupports_ProxyFor_MultipleInstancesвTRUE:

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

 

2. Открываем исходники коннектора:

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

 

3. Модернизируем метод Connect. Сохраняем Proxy.

Метод Connect вызывается каждый раз, когда хранилище коннекторов хочет, чтобы конкретная реализация коннектора начала процедуру подключения к бирже.

В метод Connect, если Вы настроили ProxyHub, будет подаваться WebProxy –класс, содержащий рабочие адреса и ключи для доступа к Proxy.

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

  1. Создаём поле private WebProxy _myProxy. В него мы будем сохранять на каждом подключении коннектора прокси, который нам передала программа.
  2. Сам WebProxy передаётся в коннектор через параметр метода Connect, либо не передаётся, тогда в него будет передан null.
  3. В самом начале метода Connect нужно сохранять прокси в ранее выделенное под это поле.

 

4. Добавляем Proxy в Rest запросы через RestClient.

На примере запроса бумаг в ALOR:

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

Добавляем блок кода, который проверяет наличие прокси. И если Proxy есть, устанавливаем его в клиент. После этого у запроса будет подменён IP.

 

5. Добавляем Proxy в Rest запросы через WebRequest.

Если в Вашем коннекторе использован WebRequest, в него надо загрузить Proxy следующим образом:

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

 

6. Добавляем Proxy в Rest запросы через HttpClient.

HttpClient нужно создавать определённым образом, чтобы во время создания в него загружался Proxy. Это чуть сложнее, но необходимо, т.к. HttpClient используется потом многократно.

Смотрим на примере коннектора BingXServerSpot: IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

  1. Процедура создания HttpClientбез Proxy.
  2. Процедура создания HttpClient, используя Proxy.


7. Добавляем Proxy во время создания WebSocket.

Каждому сокету, создаваемому внутри коннектора, необходимо указать Proxy.

Пример смотрим в AlorServer:

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

Удачных алгоритмов!

Комментарии открыты для друзей!

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php

IServerRealization #4. Модернизация коннектора до PROXY-мультиконнектора. Коннекторы к OsEngine #90.