Живой чат с PHP и JQuery.Где хранить информацию?Mysql или файл? - PullRequest
11 голосов
/ 14 апреля 2011

В чате 1 на 1. Два решения:

1) Я сохраняю каждое сообщение в базе данных и с помощью jQuery проверяю, есть ли новое сообщение в базе данных каждую секунду. Конечно я тоже использую кеш. Если есть, мы даем это сообщение.

2) Я сохраняю каждое сообщение в одном html-файле и каждую секунду через jQuery этот файл отображается снова и снова.

Что лучше? Или есть третий вариант? И вообще, что лучше, mysql или файл для такого рода проекта?

Большое спасибо.

P.S. Самый важный вопрос: что эффективнее и каким образом будет потреблять меньше ресурсов!

Редактировать: И действительно ли в наши дни очень плохо для многих чатов (скажем, 2500 чатов, что означает 5000 пользователей) использовать длинный опрос и проверять, когда файл редактируется каждую секунду с помощью javascript? Я использую очень похожие методы, такие как этот чат: http://css -tricks.com / jquery-php-chat / Это убьет мой хостинг?

Ответы [ 13 ]

0 голосов
/ 18 апреля 2011

Если вы определяете разговор только как двух человек, то запрос каждую секунду будет выглядеть как один запрос чтения в секунду на пользователя и один запрос записи каждый раз, когда кто-то что-то пишет (скажем, каждые 10 секунд).Таким образом, каждые 10 секунд у вас будет примерно 2,2 запроса в секунду на разговор.

Для 50 разговоров это 100 пользователей и 220 запросов в секунду.Это большая нагрузка на сервер для такого небольшого количества разговоров.Запись диалога в JSON или XML, вероятно, обеспечит более масштабируемое решение.

В этой статье обсуждается архитектура Meebo - long-polling, comet.

В качестве запоздалой мысли вы рассматривали установку IM-сервера, такого как Jabber, а не с нуля

0 голосов
/ 17 апреля 2011

Если это не сценарий для малой аудитории - между базами данных и файловой системой лучше использовать базу данных (.)

PS: - Flash также является отличной платформой для серверов чата.в это, а.

0 голосов
/ 16 апреля 2011

Как правило, http-соединения не очень полезны, когда речь идет о передаче данных клиенту. Проведение опросов каждые x секунд, как правило, приводит к потере ресурсов на любом сервере, если у вас имеется значительный трафик.

Вы должны попробовать XMPP в сочетании с BOSH . К счастью, большая часть тяжелой работы уже сделана для вас. Вы можете очень быстро реализовать решение на основе чистого jquery (или другого js framework). Прочтите этот учебник, он вам очень поможет - не только в решении вашей конкретной проблемы, но и в более широком представлении о том, как внедрить push-технологии через хороший оле-http

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...