如图

其实就是AJAX+轮询,但它每个HTTP请求持续半分钟,大大减少请求次数。但是一有新消息的时候,它又能立刻响应。请问是如何做到的呢?能否用PHP达到这种效果?
1
oott123 2015 年 7 月 15 日 long poll
|
2
picasso250 2015 年 7 月 15 日
楼上正解。
for (;;) { sleep(1); } |
3
djyde 2015 年 7 月 15 日
我还以为是 socket 的
|
4
mgcnrx11 2015 年 7 月 15 日
|
5
LuckyHJH OP 这种的话其实不算“推”技术吧,虽然客户端减少请求次数,但是服务器依然不断循环查询数据。
|
6
alexapollo 2015 年 7 月 15 日
long polling,很老的技术了
|
7
whahuzhihao 2015 年 7 月 15 日
之前写过一个页聊用的就是long polling。客户端发来的ajax带一个超时时间的参数,然后服务器在这个时间范围内死循环+sleep,一旦有新消息或者超过给定时间,则返回给客户端,客户端再另外发起一个请求。
或者用websocket吧,更稳定直观一些 |
8
zado 2015 年 7 月 15 日
服务器不去响应浏览器的请求,但是也不断开连接,直到有需要的时候才返回数据给浏览器。php的话应该有一个执行超时时间,过了这个时间应该会断开连接,即使服务器一直不断开,浏览器时间长了也会主动断开了,IE好像是60分钟。
|
9
gqlxj1987 2015 年 7 月 15 日
我们这边用的是一个icomet的服务来实现这种长连接
|
10
blue7wings 2015 年 7 月 16 日
使用WebSocket吧,https://pusher.com/
|
11
linpf 2015 年 7 月 16 日
长轮询。搜索“php comet”
|
12
w99wen 2015 年 7 月 16 日
用的websocket。
|
13
shoaly 2015 年 9 月 6 日 via Android
搜野狗,目前我看到的一个 10 分钟可以真正用起来的方案
|