Различия
Здесь показаны различия между двумя версиями данной страницы.
comet:introduction-to-comet [2018/02/24 11:27] anastation468 [Преимущества push сервиса] |
comet:introduction-to-comet [2019/12/18 01:58] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | <rst>RU::001-Введение</rst> | ||
- | <rst>Header:Введение</rst> | ||
- | ====== Технология Comet ====== | ||
- | |||
- | Технология Comet — позволяет отправлять произвольные сообщения клиенту (в браузер) по инициативе сервера, это и называется push notifications или по-русски push уведомления. | ||
- | Данная возможность достигается путём поддержания постоянного соединения браузера с Comet сервером. То есть, для того, чтобы мы могли отправить push уведомление в браузер посетителя, необходимо поддерживать постоянное соединение. Для этого используется технология websocket, а в тех браузерах, которые не поддерживают websocketes используется механизм long polling ajax запросов. | ||
- | |||
- | ====== Как работают push уведомления. ====== | ||
- | |||
- | На схеме изображено место комет сервера в процессе работы. Взаимодействие построено следующим образом. | ||
- | |||
- | - Браузер открывает страницу вашего сайта | ||
- | - После загрузки страницы JavaScript устанавливает постоянное соединение с comet сервером. | ||
- | - Пока открыта страница ваш сервер может отправить произвольное сообщение клиенту. Для этого он обращается с помощью PHP Api к комет серверу и передаёт ему сообщение для браузера. | ||
- | - Комет сервер используя открытое соединение с браузером доставляет полученное сообщение в браузер. | ||
- | - JavaScript Api полученное от сервера сообщение предаёт в ваш collback | ||
- | |||
- | {{ ::scheme-of-comet-using.gif |}} | ||
- | ====== Преимущества push сервиса ====== | ||
- | |||
- | Для вас преимущества данной схемы заключаются в том, что комет сервер берёт на себя всю тяжесть обслуживания постоянно открытых соединений, тем самым разгружая инфраструктуру вашего сайта. Комет сервер написан на C++ специально для обслуживания очень большого количества постоянно открытых соединений с браузерами и отлично справляется с поставленной задачей. | ||
- | |||
- | ====== А почему нельзя использовать PHP? ====== | ||
- | |||
- | А почему нельзя использовать PHP? Да собственно можно и на PHP реализовать push уведомления, но только потребление памяти и скорость работы у PHP значительно ниже, а нагрузка на сервер будет большой. Именно поэтому рекомендуется использовать специализированные инструменты. | ||
- | |||
- | |||
- | ====== Применения для уведомлений ====== | ||
- | * Online чаты | ||
- | * Уведомления о событиях | ||
- | * Браузерные многопользовательские игры | ||
- | * Графики обновляемые в реальном времени | ||
- | * Совместное редактирование документов | ||
- | * Отправка сообщений по инициативе сервера определённому пользователю (по его id) | ||
- | * Отправка сообщений по инициативе сервера всем пользователям которые подписались на канал | ||
- | * Определение онлайн пользователь или нет в данный конкретный момент | ||
- | * Получение статистики в реальном времени о общем количестве человек online |