使用HTML5,Javascript和AJAX进行网络游戏。这会有用吗?

时间:2012-02-19 06:52:44

标签: javascript ajax html5 networking

我目前正在建立我的第一个网站,仅供练习。我在HTML5和javascript中拼凑了一个快速的乒乓球游戏。我想知道如何将其变成网络游戏。

有什么阻止我说,将用户登录到我的网站,将他们的信息存储在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应用程序方面,网络通常如何完成?

1 个答案:

答案 0 :(得分:0)

您的方法存在一些问题:

  1. 您可以在用户移动时快速更新球拍位置吗?网络通信滞后,数据库需要时间来更新数据。
  2. 即使对于少数用户而言,这不是一个问题,对于许多人来说,处理所有这些用户的请求将变得非常痛苦。
  3. 如何通知一位用户另一项操作?在您的方案中,您应该经常询问服务器以获取更新。这会增加整体负荷。
  4. 解决方案可能是点对点连接,但JS目前不支持它。

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

    同样使用DB可能是不可思议的代价。事实上,对于每个游戏,你需要的是几个变量,当连接关闭时它们将被删除,所以你可以将它们存储在内存中。