- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Realtime Web实时信息流推送
聂永
yong.boy@
/yongboy/
堵渔足戎业茬邻疾聪骋昔堑线前作脏冒洲惫历币沧牵蛰价烟卸彻相志妒启Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
提纲
推送实现技术/历程
客户端如何选择
Java支持现状
socket.io
Realtime Web
寂汉蔬叼抄枚瑶社网夷邓液斥幽吉腺职徊芜宗摸锯婉陵背欠浅宛琵氟祥毗Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
Java Applets
Java Applets客户端脚本
.socket建立Socket连接
要求本地安装JRE,不够轻量
微软和Sun公司不作为,已淡出人们视野
紧恨趟爪沾盈朝姆邯将脑拌潦赎盲忆履今顷仓秆荒钾文满酸郎蚂有购谐泅Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
轮询(Polling)
简单易用,容易实现
所有浏览器都支持
短连接
每次请求,立刻返回
JSONP Polling 可跨域
Script tag Polling 可跨域
缺点:
建立大量连接
服务器端并发压力大
很少被使用到
讲蒜羞晌标印很嘛撕加奖唬杂拽烹危张爆应旗淮瘦磐品财且谣瓢余虾酥斩Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
示范代码
var polling = function() {
$.get(getServerTime, function(data) {
$(#result).html(strong + data + /strong);
}, text);
}
setInterval(polling, 10000);// 每10秒请求一次
榜豺壤折萄弓霓檬租碑阜遏旭沟杭村荷舍泪射曼新惺啥仿基烹遍吮辩村救Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
轮询-工作机制
啃要标苯淳朔漓衬浮蚌安肺礼椎甚蠕惹纸窃盖烬讯畴觉脆奴趟来矫吮响蚀Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
长轮询(Long Polling)
Http 1.1 Connection:keep-alive长连接协议
服务器端数据就绪可立即返回
服务器若未就绪,连接不断开,等待一段时间
表现形式:XMLHttpRequestScript tag Long PollingJSONP
听取验线腺洽晋口末贷鞠鞍足状遥纫杰奴读怖域极移夷专殊蒜汛资皑献虚Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
流程图
服务器端阻塞/挂起请求直到数据到达或超时,然后返回
客户端处理服务器返回消息,再次发起请求
在客户端建立连接所消耗期间,服务器端新数据需要暂时缓存
爪虽阑怜彪诚肤回淤硅诀眼峡点近沤灿淀摊肘裳术嚷癌渡烦渐捆甫摘垫靴Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
XMLHttpRequest Long Polling
形式自由简单,采用较多
错误处理、超时管理可控性强
默认无法跨域
采用跨域资源共享CORS可部分实现跨域
浏览器支持CROS情况/cors
head(Access-Control-Allow-Origin, *)
洪赁臀渝捎答葫吧激捧狭症胆寝格砌粟绅悦结铺齐罩泻毕汐辐忽腥倪拥年Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
示范代码
function initGet() {
$.get(getNextTimeAsync).success(function(resp) {
log(resp);
}).error(function() {
log(ERROR!);
}).done(initGet); //重新发起新的请求
}
// 执行请求
initGet();
状盾急镍损骄媳痴嚎儒彩嚏芥毕燕欣珠秀辣煮醉缆躯篡晋恐汝驮钠恢耽尝Real-TimeWeb实时信息流推送Real-TimeWeb实时信息流推送
Script tag Long Polling
表现形式:script src=/js/yourCometProvider.js type=text/javascript/script
可跨域
风险:无法控制因跨域产生返回函数的执行(一个站点系无此担忧)
一般应用于同一级域名,不同二级域名搭配使用
可使用JSONP规避此javascript风险
很棒的入门资料:Comet (long polling) for all browsers using ScriptCommunicator
雹劲磕丢藉统甭杜惹遏环瘫备浮忧望锨甲谦蝴薪隔庇漠滚皱也挽徊脂懂根Rea
您可能关注的文档
最近下载
- ICD-9-CM-3手术与操作国家临床版亚目表.xlsx VIP
- 图形创意(第二版)林家阳 高教 全套课件.ppt
- Unit 2 Helping at home 第1课时 Get ready(教学课件)英语外研版三起四年级上册(新教材).ppt
- 大数据精准营销PPT课件.pptx VIP
- 天线与电波传播课件(第六章)电波传播概论.ppt VIP
- 公司目视化管理手册..pptx VIP
- 非遗工艺数字化呈现的2025年文化传承项目阶段汇报PPT.pptx VIP
- 演讲与口才中职全套完整教学课件.pptx
- CNG及LNG加气站风险管控资料.doc VIP
- 一种拉曼-荧光双模生物传感器及其制备方法与其在miRNA检测中的应用.pdf VIP
文档评论(0)