![]() |
1
3
根据你的描述,听起来你有5秒钟的沉默时间,这不利于长时间的投票。当服务器返回呼叫(长或短)时,让浏览器立即启动另一个请求。作为备份,每次服务器调用时,让浏览器启动的超时时间略长于服务器端超时时间,但在返回请求时取消。如果服务器请求失败且浏览器超时完成,请启动新请求。 |
![]() |
2
2
这 尖叫 对于AJAX。 看到我今天的帖子了吗 how to send JavaScript responses to PHP .你的脚本完全没有理由要循环。 编辑:我对AJAX的不好。当我写IRC聊天机器人的时候 PHP-Egg ,我遇到了这个问题。我解决这个问题的方法(请注意,在PHP的4天中)是 pcntl_fork() PHP并让它在每次出现消息时简单地返回。它的好处是,与sleep()不同,它不会100%阻塞CPU,并且比10秒或任意设置的限制快得多。 我再次修改我的答案(抱歉!): 使用某种异步过程将文本转储到文件中。 那你要做的就是 如果(filemtime('chat.log')>时间()-5) { echo json_encode(文件获取内容('chat.log'); } 好处:有限的SQL使用;不需要循环。 |
![]() |
3
1
我一直在网上聊天,遇到了同样的解决方案来保持实时更新。所以,我想知道您是否已经弄明白了:使用sleep()函数继续循环服务器端是一种好方法,还是使用更多ajax查询更好。sleep()函数真的是个好主意吗?当几个USRE轮询时,它不会停止服务器? 我看到meebo在使用长轮询(我猜,两次查询之间的时间也取决于窗口焦点)的同时也在使用聊天应用。似乎只是在使用ajax查询。所以我想知道。 |
![]() |
4
0
您可以尝试使用根据conversationId标记的文件,而不是DB,只需检查文件是否已被“触碰”。此外,使用usleep和set_time_limit(适用于windows server)以毫秒为单位设置间隔,并增加睡眠时间。Usleep实际上会延迟CPU的使用,但如果文件被更改,它仍然会立即启动。 这是我聊天脚本的一部分。=)
|
![]() |
DumbergerL · 带请求的Python长轮询模式 7 年前 |
|
pasanbsb · Comed服务器广播频道自动删除 11 年前 |
![]() |
veereev · 如何实现轮询iphone-sdk? 11 年前 |
![]() |
Nikhil · 长轮询和setTimeout之间的区别 11 年前 |
![]() |
JayPea · Node.js:这个长轮询实现是否泄漏: 12 年前 |