Phones that everyone should know - Пониженная | Ученые нашли ген долголетия

Приготовленные / Когда зубы болят / Когда женщина за рулем Наука и образование

comet обмен сообщениями как сделать чат

push сервис — позволяет отправлять сообщения клиенту по инициативе push сервера то есть push сообщения.

Для доставки сообщений применяется комет технология. Для работы comet сообщений нужен push server. push сервис, его ещё называют комет service, поддерживает всё время открытое соединение с браузерами клиентов используя технологию websocket или long polling и по команде вашего web сервера может отправить push оповещение любому клиенту.

Использование push сервиса поможет значительно разгрузить ваши сервера и предоставит возможность использования push сервиса уведомлений без усложнения вашей инфраструктуры.

В примере выясним как создать чат ajax php с применением комет сервера. Наш чат php будет работать по технологии websocket. Для связи php с websocket сервером надо использовать php comet api.

Пример как создать простой чат для сайта на php

Если рассматривать наиболее простой мини чат на php то нам понадобится всего один канал. Все посетители подключаются на события из этого канала, а для отправки сообщения в мини чат на php просто отправляем событие в канал.

скрипт мини чата: Принцип работы.

  1. Все сообщения от всех пользователей отправляются в общий канал web_chat_pipe.
  2. Структура сообщения содержит в себе текст сообщения и имя отправившего это сообщение.
  3. Все пользователи участвующие в чате подписаны на канал чата. И полученные из него сообщения отображаются в ленте общения.
Примечание: В примерах будет использована библиотека JQuery.

Сначала расскажу как работает простой скрипт мини чата.

Первое что надо заметить это то что в данном чате переписываются используя только комет сервер. Это имеет ряд недостатков делающий из чата скорее упрощёную учебную модель.

Недостатки:

  1. Нельзя забанить клиента
  2. Нет регистрации, это позволяет спамить.

Сильные стороны:

  1. просто в разработке, грубо говоря это javascript чат php не используется
  2. очень лёгок поцес установки чата на сайт

теперь по кусочкам рассмотрим как разработать скрипт онлайн чата:

Функция web_send_msg отправляет сообщение в чат.

function web_send_msg
{
// Получение значений из html элементов ввода.
var text = $"#WebChatTextID".val; // Получаем текст сообщения
var name = $"#WebChatNameID".val; // Получаем имя пользователя

// Очистка поля с текстом сообщения
$"#WebChatTextID".val"";

// Добавление отправленного сообщения в свой список сообщений.
$"#WebChatFormForm".append">p<>b<"+name+": >;

// Отправка сообщения в канал чата.
CometServer.web_pipe_send"web_chat_pipe", {"text":text, "name":name};
}

нужно уточнить что строка: $"#WebChatFormForm".append"<p>>b>"+name+": <; добавляет напечатанное сообщение в нашу чат ленту, так чтоб потом было удобно перечитывать сообщения.

А вот вызов CometServer.web_pipe_send"web_chat_pipe", {"text":text, "name":name}; производит непосредственно отправку нашего сообщения всем остальным участникам онлайн чата. Первый параметр это имя канала в который мы отправим сообщение. Второй параметр это само сообщение.

Примечание: Обратите внимание что имя канала начинается с префикса "web_". Во все каналы имя которых начинается с префикса "web_" сообщение может отправить любой кто знает имя канала прямо из JavaScript.

Следующий фрагмент скрипта назначает колбек обработки на получение отчёта о доставке отправленого сообщения.

CometServer.subscription"_answer_to_web_chat_pipe", functionp
{
$"#answer_div".html"Сообщение доставлено "+p.data.number_messages+" получателям. "+p.data.error;
};

Тут первый параметр это строка в которой первый символ # а за ним имя канала отчёт о доставки сообщения в который мы ждём. Так то нет нужды в обработке отчёта о доставке. Из него мы сможем узнать сколько получили отправленое сообщение и не возникало ли каких либо ошибок. Источник php чат онлайн