JavaScript:更新连接的客户端变量的稳定方法

时间:2012-09-21 23:05:35

标签: javascript ajax

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

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

其他客户职位每秒约被调查30次。

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

查找Comet(与旧版浏览器兼容但不尽可能高效),BOSH或Web套接字(理想但与旧浏览器不兼容)用于其他方法。