Каталог статей

Главная » Статьи » Мои статьи

php онлайн чат

php chat

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

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

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

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

Пример как сделать websocket php чат

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

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

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

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

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

Недостатки:

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

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

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

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

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

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

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

Категория: Мои статьи | Добавил: liex (21.11.2014)
Просмотров: 1142 | Рейтинг: 0.0/0
Поиск
Категории раздела
Мои статьи [148]
Статистика
Яндекс.Метрика
Онлайн всего: 2
Гостей: 2
Пользователей: 0
Форма входа