如何实施基本的“长轮询”?我可以找到很多关于Long Polling如何工作的信息(例如,这个和这个),但没有关于如何在代码中实现它的简单示例。我所能找到的只是依赖于Dojo JS框架的cometd,以及一个相当复杂的服务器系统。基本上,我将如何使用Apache来处理请求,以及如何编写一个简单的脚本(例如,在PHP中),它将“长时间轮询”服务器以获取新消息?该示例不必是可扩展的,安全的或完整的,它只需要工作!
4 回答
动漫人物
TA贡献1815条经验 获得超10个赞
我认为客户端看起来像是一个普通的异步AJAX请求,但是你希望它需要“很长时间”才能回来。
然后服务器看起来像这样。
while (!hasNewData()) usleep(50);outputNewData();
因此,AJAX请求进入服务器,可能包括上次更新时间的时间戳,以便您hasNewData()
知道已经获得了哪些数据。然后服务器处于休眠状态,直到新数据可用。一直以来,你的AJAX请求仍然是连接的,只是挂在那里等待数据。最后,当有新数据可用时,服务器会将其提供给您的AJAX请求并关闭连接。
- 4 回答
- 0 关注
- 490 浏览
添加回答
举报
0/150
提交
取消