Поведение субъекта с интервалом - RxJava - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь создать объект BehaviorSubject для отправки данных каждые 20 секунд и отправки последних данных новому подписчику, но, похоже, он не работает.

Код находится в конечной точке WebSocket, все работает нормально, когда у меня подключен один клиент, но когда я добавляю нового, новый не получает последнюю отправленную позицию, и позиции, которые он получает, не совпадают с первым клиентом.

Когда я удаляю метод zipWith с помощью BehaviorSubject.interval (), все работает как положено, все клиенты синхронизируются c, а новый клиент получает последнюю отправленную позицию.

disposable = positionService.getLatestPositionToDisplay().zipWith(BehaviorSubject.interval(0, 20, TimeUnit.SECONDS), (p, i) -> p).subscribe(positionDto -> session.getBasicRemote().sendObject(positionDto));

Идея состоит в том, чтобы визуально синхронизировать клиентов c, как телевизор, где все смотрят одно и то же.

Знаете, чего мне не хватает?

...