Push notification или оптимизированная проверка новых сообщений
Приветствую всех.
Я реализовал чат на сокетах, все работает, как подобает, но хочется заранее оптимизировать сией процесс.
На данный момент скрипт работает следующим образом:
Пользователь входит в чат, браузер отправляет запрос через сокеты (HTML5), и запрос улетает на сервер и обрабатывается в цикле, каждая итерация - обращение в БД (цикл засыпает на полсекунды), то есть если клиент будет находится в чате 10 минут, то это, грубо говоря, 1200 обращений в БД.
Как можно оптимизировать процесс?
У меня следующее соображение:
Создать отдельный файл, при каждой записи в БД записывать в этот файл ID через функцию file_put_contents()
и уже проверять о поступивших данных не в БД, а в файле, и если эти данные новые, то уже доставать их из БД. Но какие могут крыться подводные камни при таком подходе? И вообще правильно ли так делать или же это совсем уж криво? Может быть, имеются другие варианты решение проблемы? Я впервые столкнулся с подобной задачей.