使用nodejs打造comet系统.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用nodejs打造comet系统 Keyword:nodejs、comet、nginx、socketIO Comet 服务器端推(push)或者浏览器端拉(pull),无需用户的显示操作 获取实时信息 浏览器端获取信息的成本控制 兼容多浏览器 应用于微博、聊天系统(webIM) client server open close close open New data New data open close New data close New data 没有新的数据,则阻塞请求 Client处理时server端有数据到达 data0 close open data1 data0+data1 Re-open close 连接超时重连 client server pull push Comet连接方式 Websocket flashsocket Xhr-polling xhr-multipart Streaming [readytstate=3 Iframe] Jsonp-polling Flashsocket Flash 提供了 XMLSocket 类。 JavaScript 和 Flash 的紧密结合:在 JavaScript 可以直接调用 Flash 程序提供的接口。 客户端必须安装 Flash 播放器; 因为 XMLSocket 没有 HTTP 隧道功能,XMLSocket 类不能自动穿过防火墙; 因为是使用套接口,需要设置一个通信端口,防火墙、代理服务器也可能对非 HTTP 通道端口进行限制; 参考资料: /developerworks/cn/web/wa-lo-comet/ Xhr跨域 Access-Control-Allow-Origin Access-Control-Allow-Credentials IE8+(XDomainRequest)、 ff3+都已支持 参考资料: /hg/cors/raw-file/tip/Overview.html#syntax /En/HTTP_access_control Xhr-multipart ContentType为multipart/x-mixed-replace 使用Gecko内核的浏览器中支持(firefox) demo 都是已经比较成熟的方案! 该选用哪种方式好呢? 口碑网的需求 生活圈概念 展示生活圈内店铺的优惠卷、团购、外卖信息 实时展现最新的动态信息(Comet) 演示地址:/local/storeOfferList.html(外网comet暂无开放) 平稳退化 渐进增强 socketIO 支持多种连接方式,兼容多浏览器 精力可以更多放在业务逻辑 基于nodejs /LearnBoost/socket.io Client Server 是否支持websocket 是否支持flash 是否跨域是否支持xhr跨域 http websocket flashsocket check cookie Websocket、flashsocket 监听server的request事件..初始化对应的连接方式的server端 Request.end(); Response.write(data); 接受数据并处理 需要注意的问题 保持与mysql数据源的socket连接 保证单线程语言的稳定运行 Nginx的buffer 影响 负载均衡 减小对mysql的压力 负载均衡 Nginx upstream proxy_pass http 反向代理是原生支持 tcp_proxy_module 第三方扩展支持websocket ps: tcp 和 http 不能listen同一个端口 HAProxy Nginx buffer Nginx的优化:反向代理 时,数据量小的连接被buffer. proxy_buffering off Cache减少对mysql压力 一个用户获取实时信息需进行多次请求,一次请求的成本=socket传输+sql查询 高并发时避免重复sql查询 (K,V)缓存查询条件对应的sql查询结果 1、大型应用可使用专业的redis 2、nodejs原生实现cache功能 Redis Mysql Notify消息 消息收集 Nodejs Comet Server 内存cache Nginx with tcp_proxy_module HAProxy 负载均衡 业务逻辑 源数据KV存储 业务数据收集 Comet client 写入 websocket Xhr-polling Xhr-multipart Jsonp-polling others THE END Q A @牛小腩

文档评论(0)

178****9325 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档