Большинство коннекторов в OsEngine так или иначе используют данную технологию. Особенно это касается бирж криптовалют. Потоковые данные идут именно через данный протокол.
Библиотек для подключения данного протокола великое множество. В этой статье поговорим о библиотеке, которую надо использовать и на что обратить внимание.
WebSocketOsEngine.
Данная библиотека и реализация вёбсокетов написана нами в 2025 году. Как обёртка над ClientWebSocket от Майкрософт.
Расположение:

Все остальные библиотеки, если Вы вдруг захотите их использовать — нужно согласовывать.
Мы подписываемся на ошибки и на сообщение разрыва сокета. Из сообщения о разрыве выбрасываем DisconnectEvent, метод Dispose для коннектора не трогаем!
Подписка на события открытия и закрытия сокетов в BitgetSpot сервере:

В сервере АЛОР обработка закрытия сокета выглядит так:

И это то, что нужно.
Пока все сокеты не перевелись в состояние Open, мы событие ConnectionEvent выслать на верх не можем, а также не можем менять статус у сервера на Connect.
Иногда вёбсокеты в разных Api имеют различные адреса. Например, в OKX их четыре. И прежде чем переводить статус сервера в Connect, нам необходимо дождаться, пока они все активируются и перейдут в статус Connect.
Для этого в OKX сделан специальный метод, который вызывается после того, как каждый отдельный сокет переходит в статус Connect:

Тоже самое касается коннектора к АЛОР, в котором ДВА сокета. Торговый и для данных отдельно.

Когда приходят какие-то данные, нужно их складывать в конкурентный массив. Уже потом из этого массива другой поток, который только этим и занимается, должен данные конвертировать.

Разбор данных в другом потоке, в другом методе:

Удачных алгоритмов!
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!

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