Для этого вы можете использовать веб-сокеты вместе с React redux. Если user A
просматривает запись, отправьте сообщение на сервер, чтобы заблокировать запись. Затем транслируйте сообщение locked
через веб-сокет другим подписанным пользователям, которые в настоящее время его просматривают. Как только пользователи получат сообщение locked
websocket, обновите состояние response / redux, чтобы показать соответствующий статус.
А что касается состояния гонки, это может произойти и должно обрабатываться на сервере в соответствии с использованием кейс. Например, если запрос user A
достигает первого, а User B
- второго, и если вы хотите отдать предпочтение первому пользователю, заблокируйте запись ресурса, но установите доступ true
только для User A
. После того, как user A
прекратит редактирование, снимите блокировку.
Если вы хотите сделать часть просмотра сообщений websocket отдельной проблемой вне компонента реакции, вы можете изучить промежуточное ПО redux redux-saga .