nodejs\socket.io 做comet/websocket 消息推送问题
发布于 10 年前 作者 fuemoshi 6337 次浏览 最后一次编辑是 8 年前

有没有人有nodejs实战过高并发网站(PC浏览器)的消息推送?研究了三天,下面是一些待解决的问题,希望高手们指点,谢谢

已知: socket.io 封装了不支持websocket下的替代方案polling(comet)
nodejs在linux下是基于 单线程+线程池(epoll) 做到异步非堵塞

那么, 1 、高并发连接请求,是否在线程池中某个线程排队,最大能撑多少个并发? 2、如果是comet/polling方案,也就是会有一个请求一直在等待返回直到超时,此时nodejs/socket.io是怎么处理的?epoll不是在等待io完成时应用会处于休眠状态么(《深入浅出nodejs》)那这样一个comet会阻塞住线程池的某个线程么? 3、关于nodejs服务器负载均衡,我想采用 nginx (原网站是用nginx+php)对websocket连接做负载 (nginx 1.3版本后支持),是否有人实战过其稳定性?另外,是否需要对polling方法即http连接和websocket连接做不同的负载均衡策略? 4、客户端采用socket.io-client是否合理(客户端是nginx+php),感觉有点大(想重新封装一遍不知工作量有多大,毕竟要考虑多种兼容方案)

关于第3的负载均衡,如果有实战经验希望提供下宝贵经验~

1 回复
  1. net.createServer.listen(port,host,backlog,callback)

backlog是已接受,未处理请求,默认值500+,满了之后不接受新请求,那个并发要看处理快慢了。。。

书上说的。。。

回到顶部