Синхронизирующее состояние в избыточном SPA - PullRequest
0 голосов
/ 31 августа 2018

Я разрабатываю базовое приложение для создания и прохождения тестов (с несколькими вариантами ответов и всем этим). Это React SPA с использованием веб-сокетов и react-redux. Бэкэнд написан на Python с django-channels. По сути, я хотел бы знать, есть ли относительно простой способ передать изменения, сделанные одним клиентом, на сервер и оттуда на другие клиенты.

Прямо сейчас я использую «синхронизацию на основе событий», когда для каждого взаимодействия клиент определяет, какие части состояния необходимо создать, удалить или обновить, и отправляет этот запрос на сервер. Сервер аутентифицирует запрос, выполняет необходимую обработку (база данных, уведомления) и отправляет результаты в виде сообщения клиентам, которые объединяют его в состояние.

Приложение в основном для настольного компьютера - задержка не проблема. Прямо сейчас взаимодействия приемлемо быстрые, но не мгновенные. Причина, по которой я не использую подходящую среду для этого (например, Qt), состоит в том, что мне понадобится слишком много времени, чтобы получить что-то хорошее, не говоря уже о том, что это должно быть сделано через привязки PyQt.

Что бы я хотел знать, есть ли относительно простой способ синхронизировать все состояние, чтобы вместо записи каждой мелочи я мог просто манипулировать состоянием на клиенте и вызывать syncEverything. Таким образом, я мог бы очень быстро взаимодействовать и откатываться на случай, если что-то пойдет не так (некорректный запрос, проблема с аутентификацией и т. Д.), Просто запросив соответствующую часть состояния снова. Я уверен, что это обычная задача, которая была выполнена до смерти, но я не знаю принятой практики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...