Продолжаем практические занятия по созданию новых источников для роботов в OsEngine.
Сегодня говорим про то, как расширить функционал коннектора для раздачи новых данных. И добавление нового разрешения для коннекторов под источник.
Серия постов строго для программистов со стажем, которые не только знают C# на уровне мидлов и сеньоров, но и УЖЕ разбираются в том, как делать новые серверы подключения к OsEngine.
Для этого идём в интерфейс IServerPermission и добавляем туда свойство, обозначающее наличие реализации доступа к данным для источника.
В нашем случае (а мы хотим добавить источник «Новости») итоговый коннектор должен поддерживать подписку на новости. Мы должны это обозначить:
ВАЖНО!!!
Не для всех типов источников это необходимо. Т.к. некоторые из них не нуждаются в каких-то новых данных с биржи. Например, индексы или пары просто расширяют возможности для работы с уже готовыми данными. Но в случае с новостями нам нужно обозначить новое разрешение для коннектора.
После того как интерфейс IServerPermission будет модернизирован, потребуется добавить во все разрешения в проекте новое поле со значением False. Вот так:
Идём в класс IServerRealization:
Поднимаемся по архитектуре и добавляем расширение для IServer:
Во время создания реализации сервера нужно подписаться на новое событие, которое мы добавили:
Создаём хранилище для новостей из коннекторов:
Обрабатываем событие новой новости, в нём мы складываем данные в очередь:
Далее делаем пересылку приказа о подписке на новости в реализацию:
Далее, добавляем в поток, рассылающий данные роботам, разбор очереди:
Транзак коннектор и так отсылает новости в поток данных, поэтому делаем здесь просто флаг о том, что надо отсылать сообщения наверх:
Далее, проверяя флаг в месте разбора данных, передаём данные на разбор и отсылку наверх:
Удачных алгоритмов!
Оглавление данной серии статей здесь. https://smart-lab.ru/company/os_engine/blog/1126598.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
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php