[发明专利]浏览器间的连接共享方法和装置有效
申请号: | 201210046581.3 | 申请日: | 2012-02-24 |
公开(公告)号: | CN103297455B | 公开(公告)日: | 2017-03-01 |
发明(设计)人: | 禹扬帆;王鹏程 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/18 |
代理公司: | 北京康信知识产权代理有限责任公司11240 | 代理人: | 吴贵明,江舟 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 浏览器 连接 共享 方法 装置 | ||
技术领域
本申请涉及互联网通信领域,具体而言,涉及一种浏览器间的连接共享方法和装置。
背景技术
Web推送技术已经开始流行,现在有些大型的互联网公司已经开始大规模的应用这种技术,其中的代表技术有WebSocket,Flash Socket等技术,使用Web推送技术可以突破传统HTTP不能做到的TCP(Transmission Control Protocol,传输控制协议)长连接,但是同时也引入了一个新的问题,这个问题就是当一个用户打开多个浏览器的时候,会产生多个浏览器各自发起一个长连接连接到服务端的现象,而且在很多情况下,很有可能是多个浏览器看的是同一个网站的不同网页,从而服务端需要维持几倍于客户端数量的Socket数量。因此,产生了长连接的连接数的问题:当连接数太大的时候,服务端TCP的接收缓存会成几何趋势增长,当内存耗尽的时候,服务器将没有办法再接收新的连接,那么会发生服务器拒绝服务的现象,服务器提供服务的客户端数量也将只能被限制在一个较小的范围。
然而,对于上述长连接的连接数的问题,现有技术可以通过Socket的长连接共享来解决,其基本原理是找到一个对于多个浏览器之间可以共享的数据缓存区,然后,通过数据缓存区的中转来达到连接数共享的目的,上述共享的缓存区有HTML5 Web Storage,Cookie,Flash Share Object等形式,但是,由于上述共享的缓存区基本上都是基于文件系统形成的,大多数不能够被不同的浏览器识别,例如,缓冲区如果使用Cookie或者Web Storage技术,则这些存储都有很强的浏览器同源策略的约束,而且实现方案都是在各个浏览器的内部,因此无法实现多个不同品牌之间的浏览器数据的共享;同时,由于缓冲区是基于文件的数据缓冲,导致访问速度会非常慢;此外,缓冲区的大小也有限制,浏览器厂商为了保护客户端本地存储的安全,对于本地存储的容量都有限制,一般都不会超过几兆。
因此,由上述场景可知,在现有的实现多个浏览器之间长连接共享的方案中,由于数据缓存区是基于文件系统的形式,而存在不能识别不同品牌的服务器的问题,只能识别部分服务器,不能实现真正意义上的多个浏览器之间的连接共享,同时,存在缓存区访问速度慢、缓冲区大小有限制的问题,导致影响服务器连接浏览器的数量,降低服务器的服务效率。
发明内容
本申请提供了一种浏览器间的连接共享方法和装置,以解决相关技术中上述问题。
根据本申请的一个方面,提供了一种浏览器间的连接共享方法,该方法包括:已打开的每个浏览器中用于执行脚本程序的实体对同一个资源标识符进行抢占,其中,抢占到资源标识符的实体为主实体,其它未抢占到资源标识符的实体为从实体;主实体与服务器进行连接;从实体共享主实体与服务器之间建立的连接来与服务器进行消息传输。
优选的,从实体共享主实体与服务器之间建立的连接来与服务器进行消息传输的步骤包括:主实体接收服务器发送的消息;主实体将接收到的消息组播给与主实体位于同一个组播组中的从实体。
优选的,主实体将接收到的消息组播给与主实体位于同一个组播组中的从实体的步骤包括:从实体获取主实体组播的消息中的标识,其中,标识用于唯一标识从实体中的一个;从实体判断自身的标识是否与主实体组播的消息中的标识一致;若一致,则执行判断步骤的实体判断出主实体组播的消息是属于自身的,并存储消息。
优选的,在主实体与服务器进行连接之后,还包括:从实体每隔预设周期抢占资源标识符;若抢占资源标识符成功、且主实体出现异常时,则抢占到资源标识符的从实体变为新的主实体,出现异常的主实体变为从实体。
优选的,主实体通过以下步骤加入到组播组中:主实体判断是否已加入组播组;若未加入到组播组中,则主实体判断共享文件中是否存在组播组的组播组名称;若存在组播组的组播组名称,则主实体根据共享文件中存在的组播组名称加入组播组;若不存在组播组的组播组名称,则主实体创建用于唯一标识组播组的组播组名称,将创建的组播组名称写入共享文件,并根据创建的组播组名称加入组播组。
优选的,从实体通过以下步骤加入到组播组中:从实体判断是否已加入组播组;若未加入到组播组中,则从实体判断共享文件中是否存在组播组的组播组名称;若存在组播组的组播组名称,则从实体根据共享文件中存在的组播组名称加入组播组;若不存在组播组的组播组名称,则从实体根据主实体提供的获取组播组的组播组名称的方法获取组播组的组播组名称,将获取的组播组名称写入共享文件中,并根据获取的组播组名称加入组播组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210046581.3/2.html,转载请声明来源钻瓜专利网。