У меня есть кнопки в приложении для Android, которые выдают команды роботу через вызов сокета.
Все команды должны приходить последовательно.Таким образом, я получил 2 сервиса (предположим, что у робота есть 2 набора команд, которые переводятся по-разному), которые я назвал * Controller, у них обоих есть PublishSubjects, которые, в свою очередь, предоставляют Observables.
Затем существует Socket Service (контроллер), который объединяет две вышеуказанные наблюдаемые и наблюдаемый таймер (у робота также есть постоянная команда, которая должна выполняться каждые n секунд).Затем он переводит все команды в байты и создает вызываемый для выполнения соединения с сокетом.Каждая команда отправляется через новое сокетное соединение, которое сразу после этого закрывается.
И, наконец, я подписываюсь на ответы внутри ViewModel для этого действия (что означает один раз за жизненный цикл действия).
Вопрос в том, что описанный выше способ не выглядит как правильная реактивная модель. Должен ли я как-то исключать предметы?Но что значит потерять последовательный поток команд?