Создание веб-приложения, похожего на шашки, с PHP, JS, CSS и HTML? - PullRequest
6 голосов
/ 16 мая 2011

Я хочу создать живое, похожее на шашки приложение, которое будет работать примерно так: на этой шахматной доске, как на поверхности, будет отображаться несколько значков / аватаров. Я хочу иметь командную строку под этой доской или какой-то другой интерфейс, который позволит им управлять определенным аватаром и заставлять его выполнять действия в форме. Несколько пользователей будут использовать его одновременно, и я все смогу просматривать изменения / действия других пользователей на шахматной доске.

Что мне интересно, так это: Каков наилучший способ сделать это? У меня нет подхода к HTML, CSS и JS, но нет метода хранения данных. Я знаю, что с помощью PHP у меня есть выбор: файловое хранилище, MYSQL или какой-то другой метод. Мне нужно знать, что лучше, потому что я не хочу иметь задержку на сервере, плохое время отклика или какую-либо другую проблему, особенно в этом случае, так как действия будут выполняться каждые две секунды или около того этими несколькими пользователями .

Я уже делал подобные вещи раньше, но я хочу услышать, как другие справятся с этим (совет и т. Д.) От более опытных программистов.

Ответы [ 2 ]

7 голосов
/ 16 мая 2011

Звучит как отличный проект для node.js!

Для пояснения, node.js - это реализация javascript на стороне сервера.Что вам нужно, так это кометное приложение (веб-клиентское приложение, которое получает запросы от сервера вместо того, чтобы клиент постоянно опрашивал сервер), и это именно то, в чем хорошо работает node.js.

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

Возможно, вам удастся добиться того же с помощью PHP, но я не очень знаком с приложениями типа PHP и Comet.

Количество пользователей и стоимость хостинга будут влиять на ваш файл и параметры БД.Если вы планируете использовать более двух пользователей, я бы придерживался базы данных.Есть несколько вариантов NoSQL, но по моему опыту MySQL намного быстрее и надежнее, чем эти.

Удачи в вашем проекте!

http://en.wikipedia.org/wiki/Comet_%28programming%29

http://www.nodejs.org/

http://zenmachine.wordpress.com/2010/01/31/node-js-and-comet/

http://socket.io/ - абстрагируется от коммуникационного уровня с вашими клиентами на основе их возможностей ( LongPolling , WebSockets и т. д.)

0 голосов
/ 16 мая 2011

MySQL и XCache !!!!

Убедитесь, что вы используете предопределенные операторы, чтобы MySQL не нужно было снова компилировать SQL. Также memtables может быть использован для использования памяти

Конечно, используйте индексы соответствующим образом.

Если «состояние игры» не так важно, вы даже можете хранить все в XCache. Помните, что XCache не хранит данные постоянно (после перезапуска Apache)

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