RU::12-Примеры::Как сделать чатHeader: Как сделать чат с авторизацией
====== Как сделать чат ======
В данной статье рассмотрим, как сделать чат с авторизацией на php с использованием комет сервера. Наш php chat будет работать по технологии websocket. Для связи php с websocket сервером надо использовать php comet api.
Первый пример это html скрипт чата для сайта, он будет работать без регистрации пользователей и легко вставится в любую html страницу. Мы его рассмотрим первым по тому что это наиболее простой пример чата использующего комет сервер, а затем на его основе напишем чат для сайта на php с авторизацией пользователей в чате и уведомлениями о входе и выходе пользователей.
В данной статье рассматривается вопрос создания чата, где все пользователи общаются в одной общей комнате. Если вам нужен чат для личного общения пользователей между собой (общение в диалогах один на один), то вам больше подойдёт [[comet:star-comet-chat|чат плагин личной переписки между пользователями]]
====== Пример создания простейшего чата на php ======
Первое в чём следует разобраться что такое каналы (pipe) в комет сервере. Канал это именованный поток сообщений, в который можно самому отправлять сообщения и можно подписаться на те сообщения которые туда отправляются кем то другим.
Если рассматривать наиболее простой скрипт чата для сайта, то нам понадобится всего один канал. Все участники подписываются на сообщения из этого канала, а для добавления сообщения в чат просто отправляем сообщение в канал.
Вот принцип работы простого чата для сайта
- Все сообщения от всех пользователей отправляются в общий канал web_chat_pipe.
- Структура сообщения содержит в себе текст сообщения и имя отправившего это сообщение.
- Все пользователи участвующие в чате подписаны на канал чата. И полученные из него сообщения отображаются в ленте общения.
**Примечание:** В примерах будет использована библиотека JQuery.
Сначала разберём как работает простой скрипт онлайн чата. Приведу сразу весь код, а потом разберём его подробно.
Первое что надо отметить это то что в данном чате люди общаются, используя только лишь комет сервер. Это имеет ряд недостатков, делающий из чата скорее прощёную учебную модель.
Недостатки:
- Нет возможности забанить человека
- Нет авторизации, это позволяет любому представится кем угодно.
Достоинства:
- Просто в реализации, фактически это javascript чат (php не используется)
- Прост поцес установки чата на сайт
Comet Server - Пример php чата