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

Сегодня будем разбираться с тем, как делать из обычного коннектора 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