Как работает push email / чат? Может ли это быть легко реализовано для небольших сайтов? - PullRequest
4 голосов
/ 03 октября 2009

Я пытаюсь понять, как работают push-сервисы. Я считаю, что push-уведомления - это то, где сервер «проталкивает» новый элемент клиенту, но я не знаю, как это работает на практике.

Например, как телефон «узнает», что ему нужно забрать новое письмо, если он не проверяет сервер на наличие нового сообщения вручную?

Кроме того, как это можно реализовать для программы чата или системы уведомлений для небольшого веб-сайта? Есть ли там классы php и т. Д.?

Ответы [ 2 ]

8 голосов
/ 03 октября 2009

Например, как телефон «узнает», что ему нужно забрать новое письмо, если он не проверяет сервер на наличие нового сообщения вручную?

Реализации PUSH различаются в зависимости от протокола, но принципы остаются теми же. Соединение между клиентом и сервером остается открытым, и клиент уведомляется сервером о новых событиях. Это использует меньшую пропускную способность и обычно приводит к более быстрому взаимодействию, чем клиент, периодически спрашивающий сервер, есть ли какие-либо новые события, ожидающие.

В качестве демонстрации, вот как работает почта PUSH IMAP (известная как IDLE):

  1. Клиент входит на почтовый сервер в обычном режиме.
  2. Во время процесса входа сервер сообщает, что способен IDLE.
  3. Клиент выполняет проверку и загрузку новых сообщений в обычном режиме.
  4. Вместо периодического опроса новых сообщений клиент вводит команду IDLE.
  5. Сеанс между сервером и клиентом остается тихим.
  6. Когда приходит новая почта и сервер уведомляет, что сообщения EXISTS.
  7. Клиент может затем выйти из режима IDLE с помощью DONE и загрузить эти сообщения.
  8. Повторите с шага 4.
3 голосов
/ 03 октября 2009

Я предполагаю, что вы говорите о HTTP-клиенте? Обычно это делается с помощью сервера push или Comet . Вместо того чтобы просто закрывать HTTP-соединение после загрузки страницы, клиенты оставляют соединение открытым для приема push-сообщений сервера.

Посмотрите эту SO-запись , чтобы узнать, как это сделать с помощью JQuery.

В сети есть несколько примеров для PHP , хотя вы можете посмотреть на cometd сервер, если вы ожидаете больше, чем просто несколько соединений, в противном случае у вас может закончиться Соединения с сервером Apache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...