Я намеревался создать систему блокировки сообщений, чтобы пользователь B не мог редактировать сообщение X, когда пользователь A редактирует его.Я читал, что Wordpress имеет аналогичную функцию.Я прочесал код, однако я не могу понять одну вещь.Как они справляются с удалением почтовой блокировки, когда пользователь выходит из браузера или напрямую уходит со страницы?
Кажется, Wordpress использует то, что они называют «Heartbeat API», который представляет собой простой серверный опросчик, который взаимодействует сadmin-ajax.php и обрабатывает такие вещи, как добавление / удаление почтовых блокировок.
Итак, я наблюдал несколько сценариев:
- Пользователь остается на странице (admin-ajax.php срабатывает через заданный интервал, после блокировки возобновляется)
Пользователь переходит со страницы на другую страницу WordPress (admin-ajax.php срабатывает, после блокировки снимается)
3.Пользователь переходит на другой веб-сайт непосредственно со страницы текущего веб-сайта (admin-ajax.php не сработал, однако блокировка записи снята)
В общих чертах, какони достигают 3-го?
Я исключил тайм-аут или невозможность подключения к admin-ajax.php только потому, что когда я (как пользователь, редактирующий в данный момент) остаюсь на странице, но поворачиваюсьзапросы офлайн в инструментах разработчика, блокировка почты все еще остается (как это кажется другим пользователям), несмотря на неудачные запросы к admin-ajax.php.