Показать сообщение отдельно
Старый 03.02.2015, 09:00
bifidokk вне форума Посмотреть профиль Отправить личное сообщение для bifidokk Найти все сообщения от bifidokk
  № 16  
Ответить с цитированием
bifidokk
 
Аватар для bifidokk

Регистрация: Jan 2011
Сообщений: 200
Цитата:
Сообщение от Godwarlock Посмотреть сообщение
А чем он неправильный?)) Я просто не пойму. Вот человек играет. Собирает одну монетку, посылаем запрос из флешки, серверу. Сервер же обрабатываем полученные данные и делает запрос в бд, дабы записать, что вот этот игрок собрал одну монетку и если он сейчас выйдет из игры, покинет браузер и вернется на следующий день, то у него будет та самая монетка, которую он вчера получил) В чем неправильность?) Ну будет не один, а 500 таких игроков, которые собирают монетки, 500 запросов в в бд и то не факт что в секунду, кто-то может в это время не собирать монетки, а заниматься чем-то другим. Как будет правильно тогда?)
Поднимаете сокет-сервер на php. Клиент коннектится, собирает монетку, вы в оперативной памяти в переменной состояния типа coins_amount делаете инкремент. Когда клиент отваливается (пропадает инет, или пользователь закрывает браузер), сервер ловит это событие и по нему записывает переменную в базу, либо делает это по другому событию. Таким образом, у вас не будет дергания базы на каждый клик.

Чем плохо дергать базу каждый клик. Во-первых, если есть возможность этого не делать, то зачем нагружать базу лишними запросами. Во-вторых, 500 запросов в бд в секунду не так уж и много, но мы же все хорошие программисты и сразу пишем под хайлоад В-третьих, не хотите поднимать сокет-сервер, используйте для хранения монеток redis, и синхронизируйте раз в час собранные им данные в базу.

Добавлено через 1 минуту
Цитата:
Сообщение от Godwarlock Посмотреть сообщение
А чем эта игра не реальная? В любой игре, используются одни и те же запросы в БД. Select, insert, update - основные запросы.
как раз таки в любой нормальной игре на каждый пук от клиента база не дергается, всё хранится в оперативной памяти в переменных состояния и сохраняется в бд только по определенным событиям.