使用PHP、JS、CSS和HTML创建类似于跳棋的Web应用程序?

6
我希望创建一个类似国际跳棋的实时应用程序,它将如下工作:在这个棋盘样式的表面上会显示多个图标/头像。我想在这个棋盘下方或其他某种界面上放置一个命令提示符,允许用户控制特定头像并执行操作。多个用户将同时使用它,他们都可以查看其他用户对棋盘所做的更改/操作。 我想知道的是:最好的方法是什么?我的HTML,CSS和JS方法已经掌握了,但是数据存储方法还没有。我知道,使用PHP,我有以下选择之一:基于文件的存储、MYSQL或其他方法。我需要知道哪种更好,因为我不想在这种情况下出现服务器延迟、响应时间慢或其他问题,特别是因为这些多个用户每隔2秒左右就要执行一次操作。
我以前做过类似的事情,但我想听听来自经验丰富的程序员的建议。
2个回答

7

听起来是一个很适合使用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/ - 抽象出基于客户端能力的通信层(长轮询, WebSockets等)


我无法弄清如何在我的本地主机(PC服务器)上安装node.js,更不用说Web服务器了...? - mattsven

0

MySQL 和 XCache !!!!

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

当然,适当地利用索引。

如果“gamestate”不是很重要,甚至可以将所有内容存储在 XCache 中。 请记住,XCache 不会持久存储数据(在 Apache 重新启动后)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接