Понедельник, 30.06.2025, 04:43
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории раздела
Мои статьи [1]
Интересное [269]
В том числе:
А также:
Статистика
Собери сам компьютер
Главная » Статьи » Интересное

long polling php

скрипт чата

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

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

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

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

Пример как разработать чат php

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

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

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

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

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

Минусы:

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

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

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

А далее по частям рассмотрим как разработать php comet чат:

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

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

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

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

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

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

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

имя канала начинается с префикса "web_". Во все каналы имя которых начинается с префикса "web_" сообщение может отправить любой кто знает имя канала прямо из JavaScript. В ряде случаев это может позволить значительно разгрузить ваш собственный сервер.

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

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

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

Категория: Интересное | Добавил: Небога (15.11.2014)
Просмотров: 847 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Бесплатный хостинг uCozБесплатный хостинг uCoz