Ajax, PHP, MySQL чат

Я новичок в Ajax и мне было интересно, если этот метод достаточно хорош для создания приложения чата. У меня такой вопрос: будут ли у Ajax + php + mysql проблемы с производительностью, если я скажу миллион пользователей? Будет ли это отставать? я смогу масштабировать?

Вот мой код:

     var inty = setInterval(function()
{

var qt = document.getElementById("friend_name_goes_here").innerHTML;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("chat_div").innerHTML = this.responseText;
}
};
xhttp.open("GET", "getchat.php?q="+qt+"&w="+me_name, true);
xhttp.send();
//console.log(qt);
}, 300);

Это часть ajax, а затем в «getchat.php» я бы сделал запрос к базе данных.

Я довольно новичок в этом. Любое руководство будет оценено!

Строка mysql будет выглядеть так:
Джон — Привет, Боб!

Боб — Джон, ты не понимаешь Ajax!

1

Решение

Ajax-подход очень плох для таких вещей, как чат.
Ваш php-скрипт будет вызываться очень часто, и он будет очень перегружен.

Для цели, которую вы ищете, я бы порекомендовал WebSocket.

https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications

0

Другие решения

Вам нужно будет использовать комет-сервер для доставки сообщений от сервера другим клиентам.

В вашей риализации будет слишком много запросов к серверу в секунду. И пользователь будет получать сообщения с интервалом в 300 мс, но если вы будете использовать комет-сервер, то пользователи получат сообщение немедленно.

У вас будут проблемы с производительностью 10 или 20 пользователей онлайн на виртуальном хостинге php или в небольших vps.

Например, вы можете использовать этот урок об использовании CppComet с тел.

CppComet установит постоянные соединения через веб-сокеты с javascript. И вы можете отправлять запросы в CppComet, используя api из кода php, когда вам нужно отправить любое сообщение другим пользователям.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector