Писал такой чат с запросами через jQuery
Логика такая: аякс запрос отправлять с помощью HEAD каждую секунду (можно чаще)
Запрос обрабатывает сервер nginx, сервер обращается к Memcached, если есть новые сообщения сервер возвращает код 200, если нет, код 600 который игнорируется.
Если jquery получает от сервера ответ 200, тогда формируется GET запрос на сообщение, которое уже обрабатывает PHP с обращением к базе данных.
При отправке любого сообщения, соответственно запись о новом сообщении помещается в memcached
онлайн 100 или 200 человек держит по нагрузке даже не заметно.
Чат до сих пор работает на ресурсе с посещаемостью 5-7 тыс человек в сутки.
Там ещё можно файлы, видео и фото загружать с фоновой пост-обработкой.
$.ajax({
type: "HEAD",
url: "/ex/chat.php?s="+reciever,
success: function() {
var lastid = Math.max.apply(null, $('.dialog_message').map(function() {
return $(this).attr('id');
}));
$.ajax({
type: "GET",
url: "/index.php?action=messenger&todo=refresh_dialog&reciever=" + reciever + "&page=" + lastid,
success: function(data) {
$("#msgs").append(data);
instanse = false;
$("#msgsdiv").animate({ scrollTop: $('#msgsdiv').prop("scrollHeight")}, 500);
}
});
}
});
Другое дело, что Ларавел тут вобщем-то и не нужен :)