Обмен данными браузер-сервер: PHP сойдет для сервера?

Р
На сайте с 17.05.2011
Offline
136
1065

Предполагаю сделать примерно следующее: на сервере будет лежать скрипт, который будет принимать все аяксы и возвращать браузеру запрошенные данные.

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

Такой подход не кроет в себе какие-либо проблемы масштабируемости? Или я зря парюсь и все это (запуск и завершение скрипта, создание подключения к БД, подготовка запросов...) делается достаточно быстро и не слишком затратно с т.з. ресурсов сервера?

Мне кажется, конечно, было бы лучше что бы скрипт все время был запущен, запросы к БД подготовлены и все такое. Но это же точно не PHP? А я ничем другим по сути и не владею...

Какие ваши мысли, господа?

Aisamiery
На сайте с 12.04.2015
Offline
319
#1

Вы еще в самом начале пути так то и про масштабируемость пока что забудьте. Все что вы описали может как создавать много нагрузки, так и не создавать вообще, все зависит от архитектуры вашего приложения, а не от конкретных технологий. Тем более "горячие" данные можно положить в такие БД как redis например в оперативку (а именно флаг новых сообщений) и пока он "выключен" сами сообщения не запрашивать.

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
danforth
На сайте с 18.12.2015
Offline
153
#2

Вместо того, что спрашивать сервер, не появились ли сообщения, можно просто напросто посылать эти сообщения клиенту напрямую через Websocket. Таким образом, можно сократить "холостые" обращения к серверу, и снизить нагрузку. Конечно, можно и AJAX например, если не слишком часто (раз в минуту например), но если у вас какое-то критическое приложение, где вам нужно каждые две секунды выводить на экран информацию (например, позиции в гонках, ставки на аукционах и прочее), то лучше конечно использовать WS.

Под WS лучше использовать что-то вроде NodeJS или Go, PHP в риал-тайм не сильно, хоть библиотеки и есть, но это чистой воды секс с резиновой женщиной.

Как вам выше написали, ненужно страдать преждевременной оптимизацией, потому что потратите время не добравшись до сути, однако и костылями обматываться тоже не стоит, потому что когда дело дойдет до масштабирования, придется все писать с нуля.

Junior Web Developer

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий