Методы мгновенного обмена мгновенными сообщениями PHP

Я хочу сделать IM, чтобы пользователь мог отправлять мгновенные сообщения друг другу на ту же страницу, что и чат. Пользователи могут выбирать, кто может видеть их сообщения. Это для управления задачами. Каков наилучший метод, который я должен использовать. Я использую php. Являются ли php-сокеты полезными для этого? или опрос, Comet, буфер вывода php или таймер javascript (таймер прост, но не быстрый).

Наиболее часто используемый метод называется COMET .

Вот реализация PHP: Как реализовать COMET с PHP

В спецификации HTML5 есть нечто, называемое websockets, которое уже реализовано многими браузерами. Вот проект PHP, поддерживающий websockets: phpwebsocket . Есть несколько библиотек javascript, которые могут использовать компонент Flash, если браузер не поддерживает веб-порты (и, следовательно, совместим с обратной связью)

imho webSockets – это путь, хотя PHP, возможно, не самый подходящий бэкэнд для их обработки.

Если вы знаете, как использовать Sockets используйте их; в противном случае использование AJAX в таймере должно быть достаточным, если оно не обязательно должно быть в режиме реального времени (5-10 секунд задержки между выборками сообщений должны быть в порядке).

Я бы предложил использовать Socket.IO для этого.

У вас есть несколько вариантов из PHP:

  1. Как отметил @jgauffin, вы можете посмотреть это на своем существующем PHP-сервере, используя комету с использованием опции Comet и PHP или решения WebSocket, используя что-то вроде phpwebsocket .
  2. Вы можете создать другой компонент, предназначенный для обработки ваших сообщений в режиме реального времени, таких как выделенный процесс Comet или WebSockets, выполняемый на существующем хостинге или полностью выделенный сервер. Если вы примете такой подход, вы можете посмотреть на использование чего-то типа socket.io, работающего в node.js, или на полноценном комманде или коммитовке сторонних производителей.
  3. Наконец, вы могли бы взглянуть на размещенную службу, которая позволит вам сохранить существующую среду разработки и производства, а затем вы сможете накладывать слой на чат реального времени. Одна из таких услуг под названием Pusher (в которой я работаю) обрабатывает всю инфраструктуру обмена сообщениями в режиме реального времени в дополнение к предоставлению добавленной функциональности, специально разработанной для упрощения создания приложений для чатов. Это также означает, что вам не нужно обновлять свой хостинг, если вы используете что-то вроде общего хостинга, где все сильно заперто, и вы не можете легко установить свои собственные компоненты.