Tinkoff / invest-openapi-java-sdk

Apache License 2.0
167 stars 46 forks source link

Добавить возможность указания clientIndex в sendRequest #92

Closed accedx closed 3 years ago

accedx commented 4 years ago

В функции

public void sendRequest(@NotNull final StreamingRequest request)

clientIndex вычисляется следующим образом

final int clientIndex = request.hashCode() % this.wsClients.length;

таким образом вероятность успешного unsubscribe стремится к нулю, т. к. hashCode экземпляров класса OrderbookSubscribeRequest и OrderbookUnsubscribeRequest (как пример) различен и следовательно отправятся через разные клиенты.

api.streamingContext.sendRequest(StreamingRequest.subscribeOrderbook(figi, depth))
api.streamingContext.sendRequest(StreamingRequest.unsubscribeOrderbook(figi, depth))

Предлагаю добавить к функции sendRequest параметр clientIndex, либо вместо использования hashCode экземпляра класса StreamingRequest использовать hash от результата функции onOffPairId().

zlumyo commented 3 years ago

Остановимся на варианте с использованием hash от результата функции onOffPairId().