Лучший способ обработки уведомлений без постоянного соединения - это использовать то, что люди называют также функцией сердцебиения.
Функция сердцебиения - это функция / метод, который вызывается с определенным интервалом, как ваше сердцебьется в постоянном ритме.
setInterval(function () {
$.get("/heartbeat.php", null, function (response) {
// check the response from heartbeat.php for new notifications
});
}, 10000);
Примечание : В приведенном выше примере содержится код jQuery $.get( ... )
, не-jQuery способ будет сделать вызов ajax с использованием XMLHttpRequest
.
Выше будет вызывать скрипт php каждые 10 секунд для проверки новых уведомлений.Новые уведомления могут быть добавлены, например, с помощью таблицы внутри базы данных.Например, имея таблицу уведомлений и 3 поля (4, если вы хотите дату): поле идентификатора пользователя, поле сообщения и поле флага «прочитано» / «отправлено».
Новые уведомления будут добавлены втаблица, и когда вызывается скрипт heatbeat, он проверяет идентификатор пользователя и помечает поля для новых сообщений;если они найдены, ответьте сообщением и отметьте их как отправленные.