章老师, 您好!
查到您以前的一个方案,使用 redis 的 blpop 是个好办法。
但是还有一个问题,一旦 push 的客户端 主动 close 了 http 连接,服务器是无法知道的,这会导致服务器程序的代码还阻塞在 blpop 的调用上。
另外,就算不用 blpop,而是在服务器代码中采用 sleep 然后轮训 lpop 的方式,那么服务器代码又如何知道客户端已经断开连接了呢? ngx.req.socket() 似乎不管用。
On Tuesday, June 5, 2012 10:53:34 AM UTC+8, Chen Richard wrote:
章老师, 您好!
我想用openresty 实现一个 http 长连接服务器,以实现服务器推送功能,您觉得用什么方案比较好?