1

我刚刚进入 Web 开发的世界,我正在开发一个小型浏览器游戏,它允许连接的用户控制一个对象(目前是一个三角形!),并简单地在屏幕区域中移动。

目前,我将客户端坐标位置存储在 MySQL 数据库中,并使用 AJAX 更新该位置,大约每秒 30 次。

其他客户的位置也大约每秒轮询 30 次。

然而,我的问题是,这似乎会导致客户端 IP 锁定一个小时,我认为这会在我的主机端自动发生。这可能是正常的默认预防措施吗?我的印象是在一秒钟内进行 30 次 AJAX 民意调查并不是一个特别紧张的数量,但是正如我所提到的,这对我来说是一个新领域。我担心我制造了一些微不足道的 DOS 攻击!

如果是这样,如果有这方面经验的人能指出一种更有效的方法来处理我所描述的那种交互性,我将不胜感激。这一切都导致了一个为期六个月的项目,我将独自完成我最后一年的大学项目,所以我非常乐意花额外的时间来学习更好的解决方案。

4

2 回答 2

1

你应该做的就是所谓的“混合轮询”。基本上你有一个长时间运行的方法服务器端,它运行一个“无限”循环,每 33 毫秒运行一次(每秒 30 次)。如果数据已更改,此循环会将数据发送到前端的一部分。当缓冲区中的数据变得太大而方法无法处理时,方法将退出。您的客户端一直在轮询以查看是否写入了新数据。如果方法退出,客户端必须重新启动该方法。这是一种混合方法,客户端轮询仅检查客户端数据,除非方法退出,在这种情况下,客户端必须再次轮询以重新启动服务器方法,然后每 33ms 运行一次并将数据推送到客户端.

于 2012-09-21T23:29:58.113 回答
0

查找 Comet(与旧版浏览器兼容但效率不高)、BOSH 或 Web Sockets(理想但与旧版浏览器不兼容)以获取其他方法。

于 2012-09-21T23:10:01.363 回答