В настоящее время я делаю чат-приложение, где только чат администратора и пользователей, без чата пользователя. Дизайн: каждый чат хранится в базе данных, и каждый 2-секундный пользователь и администратор делают запрос AJAX (в php-файл), чтобы узнать, есть ли новый диалог чата, и если есть, потяните данные в текстовое поле. Все кажется нормальным и работает хорошо.Лучший способ сделать чат-приложение?
Проблема заключается в том, что все больше пользователей разговаривает с администратором в то же время, когда запрос AJAX становится много, и при тестировании производительность веб-сайта уже уменьшилась, и только 5 пользователей в чате одновременно. И вход слишком медленный, каждый раз, когда пользователь нажимает кнопку ввода, они должны ввести данные в базу данных, прежде чем администратор сможет ее прочитать (и наоборот).
Мне сказали, что использование JSON является рекомендуемым способом, но я понятия не имею, как это сделать, может кто-нибудь, пожалуйста, хотя бы сказать мне, как дизайн или поток будет, если использовать JSON? Или есть лучший способ сделать это? (кстати, использование node.js
в настоящее время невозможно для моего текущего хостинга, поэтому не помещайте его в списки предложений, отстой, я знаю).
JSON - это формат сериализации, он не сможет исправить латентность. Посмотрите на _long polling_. – Halcyon
Я не уверен, почему кто-то мог подумать, что JSON может решить эту проблему с производительностью. Я также не полностью понимаю, почему 5 сеансов чата вызывают проблему. Я думаю, вам нужно точно определить **, где проблема **, прежде чем пытаться что-либо изменить. 5 потоков, отправляющих запросы db каждые 2 секунды, НЕ должны быть проблемой с производительностью, если ваши запросы и структуры данных не подтянуты. – NotMe
Посмотрите на: http://stackoverflow.com/questions/8915819/building-a-chat-system-with-javascript –