[发明专利]Comet连接的维护方法及装置有效
申请号: | 201310036458.8 | 申请日: | 2013-01-30 |
公开(公告)号: | CN103973469B | 公开(公告)日: | 2017-09-15 |
发明(设计)人: | 张乐伟 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24 |
代理公司: | 北京润泽恒知识产权代理有限公司11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | comet 连接 维护 方法 装置 | ||
技术领域
本申请涉及长连接技术领域,特别是涉及Comet连接的维护方法及装置。
背景技术
传统模式的Web系统以客户端发出请求、服务器端响应的方式工作。这种方式并不能满足很多现实应用的需求,例如,Web网页版的即时通信系统中,当用户甲登录向用户乙发送信息时,就需要服务器能将更新的信息推送给用户乙,而无须用户乙向服务器发出请求。
“服务器推”是一种很早就存在的技术,以前在实现上主要是通过客户端的套接口,或是服务器端的远程调用。因为浏览器技术的发展比较缓慢,没有为“服务器推”的实现提供很好的支持,在纯浏览器的应用中很难有一个完善的方案去实现“服务器推”并用于商业程序。最近几年,由于AJAX (Asynchronous JavaScr ipt and XML,异步JavaScript和XML)技术的普及,以及把IFrame嵌在“htmlfile”的Act iveX组件中可以解决浏览器的加载显示问题,同时“服务器推”在现实应用中确实存在很多需求,基于纯浏览器的“服务器推”技术开始受到较多关注。这种基于HTTP (Hypertext transfer protocol,超文本传输协议)长连接、无须在浏览器端安装插件的“服务器推”技术为“Comet”。目前已经出现了一些成熟的Comet应用以及各种开源框架。
Comet主要是利用页面向服务器发出请求时,服务器发回响应内容,并利用JavaScript建立一个长时间链接的“长连接”,这个连接在没有接收到服务器或者没有到达连接时间限制时,会一直等待服务器的消息,如果服务器有消息传来,立即显示最新信息。一个长连接每隔一段时间(例如30S)会断开一次,页面在收到断开消息之后,重新向服务器发出连接请求,重新建立Comet连接,不断循环往复。
在一些大型的应用中,服务器端可能会支撑大量的Comet连接,例如,可能达到20万个,假设每个Comet连接维持的时间为30s,为了将连接断开及建立均匀分配,需要定期(例如每1秒)检查一次有哪些Comet连接的维持时间已经达到30S,并将这些连接断开,然后再根据页面的请求建立新的Comet连接。也就是说,在服务器中会不断的有Comet连接被建立、断开、再建立、再断开,并且每次可能会断开一批Comet连接。
但是,在现有技术中,一般是采用Map的方式对Comet连接的建立及断开进行管理。所谓Map方式就是指用key-value对的方式,即以用户id作为Map的key,以连接作为Map的value,在页面发起请求的时候,系统将记录用户的id和此连接,用于后续消息推送。而每次在检查有哪些Comet连接需要断开时,都需要遍历整个Map,这将浪费大量的系统资源。
发明内容
本申请提供了Comet连接的维护方法及装置,能够降低在查找需要断开的Comet连接过程对系统资源的占用。
本申请提供了如下方案:
一种Comet连接的维护方法,包括:
系统启动时,创建长度为L的数组,其中,L为整数,等于第一时间长度与第二时间长度的比值,第一时间长度为每个Comet连接维持的时间长度,第二时间长度为检查需要断开的Comet连接并执行断开操作的时间间隔;
从所述数组的第0位开始,每隔第二时间长度向前移动一位,并在所述数组的每一位中记录最近第二时间长度内建立的Comet连接;
当所述数组移动到第L-1位后,隔第二时间长度后移动到所述数组的第0位,再从所述数组的第0位开始,每隔第二时间长度向前移动一位,其中,移动到每一位时,将该位中记录的Comet连接断开,并在该位中重新记录最近第二时间长度内建立的Comet连接;循环执行该步骤。
一种Comet连接的维护装置,包括:
数组创建单元,用于系统启动时,创建长度为L的数组,其中,L为整数,等于第一时间长度与第二时间长度的比值,第一时间长度为每个Comet连接维持的时间长度,第二时间长度为检查需要断开的Comet连接并执行断开操作的时间间隔;
数组移动单元,用于从所述数组的第0位开始,每隔第二时间长度向前移动一位,并在所述数组的每一位中记录最近第二时间长度内建立的Comet连接;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310036458.8/2.html,转载请声明来源钻瓜专利网。