所以我在我的网站上进行了长时间的民意测验(目前,我无法选择实施WebSockets
),并且我一直在关注与 MySQL 。目前这个价格很低,因为我每有机会就关闭PDO
连接,但是这让我开始思考:
如果客户决定不断访问长轮询脚本怎么办?那么它将不必要地开始对该用户进行多次轮询;快速占用可用线程的数量。
我无法在前端控制它,因为可以操纵。在服务器端。
在服务器端工作的问题是,在运行长轮询时不能使用Sessions
,否则它将完全挂起所有服务器请求(我认为这与while循环有关-我不太记得了) 。所以像这样处理它是行不通的:
/* don't hang server requests, essentially... */
session_write_close();
if(Session::get("is_polling") !== true){
/* ... begin long poll here ... */
Session::set("is_polling", true);
if(/* long poll finished */){
Session::set("is_polling", false);
}
}
我全都没主意,因为我的大多数解决方案都涉及Sessions
或 JavaScript 的使用,如上所述,这是不允许的(我什么都不想要)在用户的控制之下)。
感谢所有帮助,
干杯。