Содержание
Технология Comet
Технология Comet — позволяет отправлять произвольные сообщения клиенту (в браузер) по инициативе сервера, это и называется push notifications или по-русски push уведомления. Данная возможность достигается путём поддержания постоянного соединения браузера с Comet сервером. То есть, для того, чтобы мы могли отправить push уведомление в браузер посетителя, необходимо поддерживать постоянное соединение. Для этого используется технология websocket, а в тех браузерах, которые не поддерживают websocketes используется механизм long polling ajax запросов.
Как работают push уведомления.
На схеме изображено место комет сервера в процессе работы. Взаимодействие построено следующим образом.
- Браузер открывает страницу вашего сайта
- После загрузки страницы JavaScript устанавливает постоянное соединение с comet сервером.
- Пока открыта страница ваш сервер может отправить произвольное сообщение клиенту. Для этого он обращается с помощью PHP Api к комет серверу и передаёт ему сообщение для браузера.
- Комет сервер используя открытое соединение с браузером доставляет полученное сообщение в браузер.
- JavaScript Api полученное от сервера сообщение предаёт в ваш callback
Преимущества push сервиса
Для вас преимущества данной схемы заключаются в том, что комет сервер берёт на себя всю тяжесть обслуживания постоянно открытых соединений, тем самым разгружая инфраструктуру вашего сайта. Комет сервер написан на C++ специально для обслуживания очень большого количества постоянно открытых соединений с браузерами и отлично справляется с поставленной задачей.
А почему нельзя использовать PHP?
А почему нельзя использовать PHP? Да собственно можно и на PHP реализовать push уведомления, но только потребление памяти и скорость работы у PHP значительно ниже, а нагрузка на сервер будет большой. Именно поэтому рекомендуется использовать специализированные инструменты.
Применения для уведомлений
- Online чаты
- Уведомления о событиях
- Браузерные многопользовательские игры
- Графики обновляемые в реальном времени
- Совместное редактирование документов
- Отправка сообщений по инициативе сервера определённому пользователю (по его id)
- Отправка сообщений по инициативе сервера всем пользователям которые подписались на канал
- Определение онлайн пользователь или нет в данный конкретный момент
- Получение статистики в реальном времени о общем количестве человек online
Обсуждение