пятница, 14 ноября 2014 г.

скрипт чата для сайта

php websocket server

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

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

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

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

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

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

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

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

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

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

Минусы:

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

Достоинства:

  1. особенно просто в реализации, по честному это javascript чат
  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".appendb>"+text+"<; добавляет напечатанное сообщение в нашу чат ленту, так чтоб потом было удобно перечитывать сообщения.

А вот вызов 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;
};

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

Комментариев нет:

Отправить комментарий