RazzwanОткрой первую ссылку с хабры. Там строк кода очень мало. Всё что надо - принимать и передавать сообщение всем слушателям, основы работы websockets на PHP. Немного фильтрации, доктрину поставь и всё. Эту задачу можно сделать за пару дней не парясь, если там з/п стоящая и фирма престижная, то без проблем сделать такое.
В итоге у тебя получится:
index.html:
1) текстовое поле, куда выводишь сообщения.
2) Форма для отправки сообщений
3) строчек 6-8 отправить сообщение, получить сообщение, вывести его на экран.
Ещё 1 файл слушатель. mess.php
Пару строчек соединения по веб-соккетам, пару строчек добавления сообщения и пару строчек на отдачу сообщения.
Я вот подумал, я бы и за часика 4 или 6 сделал бы готовый код. От тебя не требуется предусмотреть подводные камни, а так же 4/5 остального функционала чата, отсюда всё очень просто.
Блокировка пользователя:
if(isAdmin()) query("UPDATE `user` ...");
При отправке сообщения:
if($user['ban'] == 1) {
echo json_encode('status'='banned');
exit;
}
Ограничить время сообщения:
if(isset($_SESSION['timer']) && $_SESSION['timer'] < time()+15) {
echo json_encode('status'='too-fast');
exit;
}
Зашедшему пользователю присваивается случайный цвет его ник-нейма и цвету сообщения:
В куки поместил и радуешься.
В общем, минут 5 писал это сообщение, а уже 1/3 функционала чата реализовал.
_______________________________
В общем, мой вердикт, так как т/з как тестовое задание, то и надо лишь продемонстрировать знания базовые из документации. Я выше скинул 4 ссылки, вот с ними ознакомиться и сделать, ничего трудного. Если ранее работал с этим всем, то вообще запилить подобное за пару часов можно.
Ах да, я не предусмотрел ни оптимизации (дублирования кода на JS), ни полного функционала. У меня чат на 2 тысячи строк JS. Вот это настоящий чат, а тут лишь его прототип, за 20-30 строк кода готовое тестовое задание. ;)
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).