Всем привет, вопрос такой: создаю игру, суть - строительство. Игра онлайн, и важной деталью является то, что игра должна хранить все переменные в бд. То есть, чтобы что-то купить, я отправляю запрос к php-скрипту, который проверяет, есть ли у игрока деньги и возвращает определенный результат(1 или 0). Таких php скриптов у меня много и выполняют они разные функции. Хостинг постепенно выдает ошибку, что подключение к бд в час ограниченно. Есть ли какой-то способ один раз подключиться к бд и использовать это подключение для всех скриптов, или может кто-то подскажет, как сделать сервер, куда можно будет отправлять запросы к php-скриптам(то есть он тоже будет использовать одно подключение к бд), а может посоветуете хостинг, где такой проблемы не будет?
Очень жду ваших ответов.
Заранее спасибо.
В PHP каждый запущенный скрипт создает своё подкдючения к базе данных (одно), однако при правильно написанном коде PHP должен освободить соединение.
Так что скорее всего в код закралась ошибка и её нужно исправить.
P.S. В качестве совета, PHP не лечший вариант игрового бэкенда. Я бы посоветовал посмотреть в сторону NodeJS
AnderZero, ну почему же?) Просто есть особенности. Напомню что полно крупных проектов, написанных на php: Facebook, Avito, Badoo. Хватает и игр на нем. Все зависит от того как спроектировать
DevMan, я думаю можно согласиться, что решение "Надо просто не запускать игры на хостинге за три копейки.", Тоже неверно. Сверху я написал, что ищу любое решение, которые мне подойдет и такое решение мне дали, посоветовали не использовать PHP в таком вопросе, т. к. Обычно в таких случаях используется NodeJS.
AnderZero, ноду так же не запустить на хостинге за 3 копейки.
обычно в таких случаях используют то, с чем умеют работать. это может быть и пхп, и нода, и ява, и еще куча вариантов.
DevMan, Это то понятно, но создать постоянное соединение с бд и постоянный веб-сокет на NodeJS оказалось просто. В первой же статье я нашел и сервер и сокеты, в то время как PHP заставил меня задавать вопрос здесь, потому что в Гугле ничего найти не смог.
AnderZero, вам как раз всё правильно ответили.
Вам скорее всего вообще не нужно держать открытые соединения с БД. Вы банально упёрлись в ограничения хостинга по количеству коннектов и всё. Но для этого совершенно не нужно менять стек. Т.е. перейти на ноду - тоже решение, но в вашем случае достаточно было бы просто перейти на впс.
Ровно с таким же успехом вы могли нарваться на лимит количества хитов в час. На некоторых хостингах такое есть. По крайней мере, раньше встречалось, сейчас не знаю. На что вы переходили бы в таком случае?
Я абсолютно не критикую ваш выбор перейти на ноду. Просто в данном случае это ни на чём не основанное решение. Вы не вникли в чём проблема и думаете что смена стека резко решит все ваши вопросы.
AnderZero, впс для новичка и для старичка - абсолютно ничем не отличаются. Всё исключительно зависит от ваших навыков администрирования.
Вам нужно просто найти подходящий вариант по соотношению цена/ресурсы. А дальше всё в ваших руках. Да, администрировать придётся самому.
В принципе, можно заказать отдельно услугу администрирования, но дешевле - научиться самому. Да и лишним оно точно не будет.
В качестве компромисса можно заказать впс с какой-нибудь панелью: CPanel, ISP Manager, Vesta CP и так далее. Но я бы не советовал. С одной стороны оно вроде и проще, но нет. Изучайте командную строку Linux.
А предложений по впс в сети полно. Погуглите, посмотрите цены и так далее.