Я планирую веб-приложение, похожее на чат, где всякий раз, когда один пользователь публикует что-либо, все остальные пользователи (то есть люди, чей браузер указывает на этот сайт) получают мгновенные обновления. Распространенным выбором для этого является обмен сообщениями в стиле кометы с использованием длинных запросов AJAX. Написание клиентской части с помощью jQuery не представляет большой проблемы.
Но мне интересно, как лучше реализовать серверную часть в PHP. Сообщения / сообщения будут храниться в MySQL, и возникает вопрос: после записи нового сообщения в базу данных, как я могу уведомить все ожидающие запросы, что для них доступны данные без с использованием опроса? Опрос будет работать, но это уродливо и тратит ресурсы, поэтому я не хочу:
while (timeout not reached) {
if ($database->has_changes())
break;
sleep(1);
}
handle_changes_if_any();
Есть ли какая-то особенность MySQL, которая мне здесь поможет? Поможет ли какой-нибудь IPC? Сервер работает Apache.