скрипт html чата

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

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

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

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

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

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

websocket php чат: Принцип работы.

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

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

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

Слабые стороны:

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

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

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

И далее по кусочкам рассмотрим как написать чат ajax php:

Функция 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_chat_pipe начинается с префикса "web_". Во все каналы имя которых начинается с префикса "web_" сообщение может отправить любой кто знает имя канала прямо из JavaScript.

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

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

первый параметр это строка в которой первый символ # а за ним имя канала отчёт о доставки сообщения в который мы ждём. В прицепе нет нужды в обработке отчёта о доставке. Из него мы сможем узнать сколько человек получили отправленое сообщение. Материал на основе статьи как сделать чат в html