如图

其实就是AJAX+轮询,但它每个HTTP请求持续半分钟,大大减少请求次数。但是一有新消息的时候,它又能立刻响应。请问是如何做到的呢?能否用PHP达到这种效果?
如图

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