Каждый коннектор в OsEngine должен (в итоге, а тем более новые) содержать определённый набор регионов. В которых должны располагаться определённые методы, свойства и обработчики.
Таким образом, каждый программист, кто хоть чуть-чуть знаком с одним коннектором, автоматически начнёт понимать, как устроены другие. И как же они функционируют. Без проблем сможет ориентироваться внутри коннекторов, которые открыл впервые.
Далее, каждый регион будет показан на примере коннектора к бирже криптовалют BitGet, расположенном в проекте вот здесь:
Рис.0. Расположение сервера из примеров ниже внутри проекта OsEngine.
Рис.1. Пример региона 1 в BitGet.
В данном регионе располагается конструктор реализации сервера. Реализация методов Connect / Disconnect. Тип сервера и т.д.
То, что нужно для старта работы сервера.
Рис.2. Пример региона 2 в BitGet.
В данном регионе располагаются настройки коннектора.
Рис.3. Пример региона 3 в BitGet.
Запрос доступных для подключения бумаг у подключения. Плюс всё, что с этим связано.
Рис.4. Пример региона 4 в BitGet.
Запрос доступных портфелей у подключения. Плюс всё, что с этим связано.
Рис.5. Пример региона 5 в BitGet.
Запросы данных по свечкам и трейдам. Плюс всё, что с этим связано.
Рис.6. Пример региона 6 в BitGet.
Создание вёбсокет соединения. Плюс всё, что с этим связано.
Рис.7. Пример региона 7 в BitGet.
Обработка входящих сообщений от вёбсокета. И что важно в данном конкретном случае, Closed и Opened методы обязательно должны находиться здесь, а не только приём сообщений. Ибо без них стабильно наладить работу вёбсокета не выйдет.
Рис.8. Пример региона 8 в BitGet.
Проверка вёбсокета на работоспособность путём отправки ему пингов.
Рис.9. Пример региона 9 в BitGet.
Подписка на бумагу. В данном случае это один метод, но бывает их тут и три. Поэтому отдельный регион.
С обязательным контролем скорости и кол-ву запросов к методу Subscrible через rateGate. Иначе будут проблемы, когда пользователи начнут подписываться на 400 источников.
Рис.10. Пример региона 10 в BitGet.
Разбор сообщений от сокета и отправка их наверх.
Рис.11. Пример региона 11 в BitGet.
Регион, посвящённый торговле. Выставление ордеров, отзыв и т.д.
Рис.12. Пример региона 12 в BitGet.
Место расположение HTTP запросов.
Рис.13. Пример региона 13 в BitGet.
Логирование.
Бездумное и повсеместное использование регионов запрещено… В контексте коннекторов мы будем их использовать только для оборачивания больших секторов класса ServerRealization по смыслу! Больше их нигде применять не нужно, ибо это порочная практика!
Что почитать?
Пост из серии «Коннекторы к OsEngine»
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!
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