2012-02-19 62 views
0

我目前正在建造我的第一个网站只是为了练习。我在HTML5和JavaScript中扔了一场pong的快速游戏。我想知道如何才能把它变成网络游戏。与HTML5,Javascript和AJAX网络游戏。这会工作吗?

有没有什么能够阻止我说出来,将用户登录到我的网站,将他们的信息存储在sql数据库中,然后查找另一个登录并等待玩我的游戏的人。要处理网络,我可以创建一个sql数据库并使用AJAX将新信息发布到专门处理网络的表中?

这里是什么,我一直在集思广益的视觉例如:

[sql table: network] 
    [logged in user: Josh] [Josh paddle position Y] 
    [logged in user: Tim] [Tim Paddle position Y] 

    Use Ajax XMLHttpRequest to post Josh paddle position Y and Tim Paddle Position Y 
    to the network table, updating each client's screen accordingly (maybe use XMLHttpRequest.responseText to get the other person's information) 

    delete network table when both users have left the game 

无论如何,如果你不认为这种方法会工作,你可以点我也许是正确的方向?我对网络编程还很陌生,所以也许我很想理解Ajax的工作方式。当涉及到Web应用程序时,网络通常如何完成?

回答

0

有几个问题你的方法:

  1. 你能尽可能快地用户移动它更新桨位置?网络通信滞后,DB需要时间更新其数据。
  2. 即使对于少数用户来说也不是这样的问题,对于很多人来说,处理这么多的用户请求会变得非常痛苦。
  3. 如何通知一个用户另一个操作?在你的计划中,你应该非常频繁地询问服务器以获取更新。这增加了总体负载。

该解决方案可能是点对点连接,但JS现在不支持它。

要发布更新并获得有关它们的通知,您可以使用持久性连接:而不是每个查询的重新连接连接,只需执行一次,然后将其用于双向通信。从这个额外的好处是逃避轮询服务器关于更新的需要。 请参阅维基百科上的Server push文章。

另外使用DB可能会造成代价昂贵。实际上,对于每个游戏,您需要的是连接关闭时将删除的几个变量,因此您可以将它们存储在内存中。