|      1nybux      2013-07-20 10:47:14 +08:00  1 可以搜索一下servlet 3.0的asyncservlet | 
|  |      3itommy      2013-07-20 11:48:26 +08:00 via iPhone 没有服务器特别的配置 就是 JavaScript 去request 一个php file, 然后 file 里做 loop 就可以keep connection alive. 然后就出现了 所谓的 long polling | 
|  |      4mlhorizon      2013-07-20 12:13:17 +08:00 需要服务器端支持! | 
|  |      5mantianyu OP @itommy 这样似乎需要服务器返回 multipart/x-mixed-replace ,否则服务器会一直等待php脚本执行完成才将输出发送到浏览器, 可是这种mime类型连ie10都不支持 | 
|  |      6mantianyu OP @itommy 说错了,应该说,“ie连第10版都不支持这种mime类型,firefox和chrome和safari和opera等就支持” | 
|  |      8sivacohan PRO 如果我没记错,comet被websocket和long polling代替了。这时个过时的技术。 | 
|  |      9mantianyu OP @sivacohan 查了很多资料,说是long polling其实是comet的一种实现方式,comet是个泛型名词 | 
|      10nybux      2013-07-20 17:05:36 +08:00 php和普通的servlet都是一个请求要占用一个线程或进程,long polling需要在等待条件的时候释放掉占用的线程或进程。所以以目前php的方式就算实现,也无法支撑多少用户。 long polling是从http层面看到的东西,comet和asyncservlet是一种实现。websocket需要浏览器额外支持。 采用什么方案实现longpolling,要根据你的用户量来决定。 我觉得golang是最佳的方案。在一台普通pc上可以支持上万用户。 接着是netty,async servlet,nodejs都是可选方案。我用asyncservlet测试2万用户基本已经没法用了。 | 
|      11lisztli      2013-07-20 19:16:34 +08:00 关键字 epoll | 
|      12lisztli      2013-07-20 19:17:02 +08:00 | 
|  |      13zzNucker      2013-07-20 19:32:00 +08:00 | 
|      14julyclyde      2013-07-21 16:13:01 +08:00 php的话,可以用obflush | 
|  |      15itommy      2013-07-21 17:30:58 +08:00 |