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