Tinkoff / invest-openapi-js-sdk

Apache License 2.0
211 stars 50 forks source link

Исправлена ошибка многоразовой подписки на каналы #119

Closed xstyle closed 3 years ago

xstyle commented 3 years ago

Подписка на каналы никак не контроллируется. На стороне клиента на один канал можно подписаться несколько раз и каждый раз на сокет-сервер отправляется событие подписки. На стороне сокет-сервера это видимо никак не отслеживается т.к. подписавшись несколько раз на один канал, сокет-сервер начинает присылать энное количество абсолютно одинаковых событий. При тестах доходило до 20 одинаковых событий на канал.

Отписка от канала сделана правильно. Если отписался последний слушатель канала, то на сокет-сервер отправляется событие отписки.

При подписке на канал никаких проверок не производиться. Сколько раз приложение решило подписаться на канал, столько раз на сокет-сервер отправляется событие подписки.

Для исправление такого поведения, перед подпиской на канал добавлена проверка количества слушателей канала. Запрос на подписку отправляется на сокет-сервер только в случае если слушателей нет.

ZigGreen commented 3 years ago

Привет. Спасибо за доработки!

ZigGreen commented 3 years ago