【问题标题】:Creating a live checkers-like web app with PHP, JS, CSS and HTML?使用 PHP、JS、CSS 和 HTML 创建一个类似于跳棋的实时 Web 应用程序?
【发布时间】:2011-08-26 16:56:46
【问题描述】:

我想创建一个实时的、类似于棋盘的应用程序,它的工作原理如下:在这个棋盘状表面上将显示多个图标/头像。我想在这个板子下面有一个命令提示符,或者其他类型的界面,这将允许他们控制某个化身,并让它执行动作。 多个用户将同时使用它,我都可以查看其他用户对棋盘的更改/操作。

我想知道的是:最好的方法是什么?我有我的 HTML、CSS 和 JS 方法,但不是我的数据存储方法。我知道,使用 PHP,我可以选择使用以下任一方法:基于文件的存储、MYSQL 或其他方法。我需要知道哪个更好,因为我不想出现服务器延迟、响应时间差或其他一些问题,尤其是在这种情况下,因为这些多个用户每隔 2 秒左右就会执行一次操作.

我以前做过类似的事情,但我想听听其他更有经验的程序员如何处理它(建议等)。

【问题讨论】:

    标签: php javascript html css


    【解决方案1】:

    听起来是一个很棒的 node.js 项目!

    澄清一下,node.js 是 javascript 的服务器端实现。您需要的是基于 Comet 的应用程序(一个基于 Web 的客户端应用程序,它接收服务器端推送,而不是客户端不断地轮询服务器),这正是 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/ - 根据客户的能力(LongPollingWebSockets 等)抽象出与客户的通信层

    【讨论】:

    • 我不知道如何在我的本地主机(PC 服务器)上安装 node.js,更不用说 Web 服务器了...?
    【解决方案2】:

    MySQL 和 XCache !!!!

    确保使用预定义的语句,这样 MySQL 就不需要再次编译 SQL。还可以使用 memtables 来使用内存存储

    当然要适当地使用索引。

    如果“游戏状态”不是那么重要,您甚至可以将所有内容存储在 XCache 中。 请记住,XCache 不会持久存储数据(在 Apache 重启后)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      相关资源
      最近更新 更多