скрипт html чата comet server — позволяет отправлять любые сообщения в браузер клиента по инициативе комет сервера то есть push оповещения. Для доставки уведомлений нужна комет технология. Для работы комет сообщений нужен push сервер. комет сервер, его ещё называют push server, поддерживает непрерывно открытое сетевое соединение с браузерами клиентов используя технологию websocket или long polling и по команде вашего web сервера может отправить push оповещение любому посетителю. Применение comet технологии позволит значительно разгрузить ваши сервера и предоставит возможность использования push сервиса уведомлений без усложнения вашей инфраструктуры. В этой примере выясним как сделать скрипт чата для сайта с использованием комет сервера. Наш php comet чат будет работать по технологии websocket. Для связи php с websocket сервером надо использовать php comet api. Пример как создать websocket php чат Если рассматривать наиболее чат то нам понадобится всего один канал. Все посетители подписываются на сообщения из этого канала, а для добавления события в мини чат на php просто посылаем сообщение в канал. скрипт чата на php: Принцип работы. - Все сообщения от всех пользователей отправляются в общий канал web_chat_pipe.
- Структура сообщения содержит в себе текст сообщения и имя отправившего это сообщение.
- Все пользователи принимающие участие в чате подписаны на канал чата.
Сначала расскажу как работает простой чат для сайта на php. надо заметить это в чате общаются применяя всего лишь комет сервер. Слабые стороны: - Нельзя забанить человека
- Нет авторизации, это позволяет любому представится кем угодно.
Сильные стороны: - очень сильно просто в реализации, на самом деле это javascript чат
- лёгок поцес установки чата на сайт
ниже по кусочкам рассмотрим как разработать чат 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".appendb>"+text+"<; добавляет напечатанное сообщение в нашу чат ленту, так чтоб потом было удобно перечитывать сообщения. А вот вызов CometServer.web_pipe_send"web_chat_pipe", {"text":text, "name":name}; производит непосредственно отправку нашего сообщения всем остальным участникам онлайн чата. Первый параметр это имя канала в который мы отправим сообщение. Второй параметр это само сообщение, содержащие имя отправителя и текст сообщения. Обратите внимание что имя канала web_chat_pipe начинается с префикса "web_". Во все каналы имя которых начинается с префикса "web_" сообщение может отправить любой кто знает имя канала прямо из JavaScript. Следующий фрагмент кода назначает callback обработки на получение отчёта о доставке отправленого сообщения. CometServer.subscription"_answer_to_web_chat_pipe", functionp { $"#answer_div".html"Сообщение доставлено "+p.data.number_messages+" получателям. "+p.data.error; }; Тут первый параметр это строка в которой первый символ # и за ним имя канала отчёт о доставки сообщения в который мы ждём. грубо говоря нет необходимости в обработке отчёта о доставке. Из него мы сможем получить сколько человек получили наше сообщение. Источник html скрипт чата для сайта
|