Php AJAX长轮询,提高效率
一段时间以来,我一直在考虑为我的通知系统进行长时间轮询的想法,但我从来没有想到一种方法来提高后端的效率 我见过的大多数实现都保持连接打开,php每隔几秒钟就查询数据库服务器以查看是否添加了新数据。这对我来说并不比让javascript重复轮询服务器好多少 在任何一种情况下,我的数据库服务器都会受到数万次的攻击,这是可以理解的,这并不是特别需要的Php AJAX长轮询,提高效率,php,Php,一段时间以来,我一直在考虑为我的通知系统进行长时间轮询的想法,但我从来没有想到一种方法来提高后端的效率 我见过的大多数实现都保持连接打开,php每隔几秒钟就查询数据库服务器以查看是否添加了新数据。这对我来说并不比让javascript重复轮询服务器好多少 在任何一种情况下,我的数据库服务器都会受到数万次的攻击,这是可以理解的,这并不是特别需要的 是否有任何系统可以向正在执行/休眠的长轮询脚本发出新数据的“警报”?单个系统 如果您的应用程序是唯一更改数据库的系统,那么您只能在应用程序执行更改时触发
是否有任何系统可以向正在执行/休眠的长轮询脚本发出新数据的“警报”?单个系统 如果您的应用程序是唯一更改数据库的系统,那么您只能在应用程序执行更改时触发侦听器(理想情况下,仅针对每个侦听器感兴趣的实体的更改) 多系统 在多个系统访问/更改数据库的情况下,您可以
- 使用数据库触发器
- 确保访问数据库的所有其他系统将始终通知您的应用程序(通过某种消息传递机制)
- 您至少可以通过只有一个循环来进行优化,该循环频繁地查询数据库,并一次通知所有侦听器(因此,您没有针对每个侦听器的循环)