CN102984276A - 用于对多个套接字服务器进行分发的分发器和分发方法 - Google Patents
用于对多个套接字服务器进行分发的分发器和分发方法 Download PDFInfo
- Publication number
- CN102984276A CN102984276A CN2012105485546A CN201210548554A CN102984276A CN 102984276 A CN102984276 A CN 102984276A CN 2012105485546 A CN2012105485546 A CN 2012105485546A CN 201210548554 A CN201210548554 A CN 201210548554A CN 102984276 A CN102984276 A CN 102984276A
- Authority
- CN
- China
- Prior art keywords
- information
- connection
- client
- cid
- browser
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明提供了一种用于对多个套接字服务器进行分发的分发器和分发方法,该方法包括接收浏览器客户端发送的连接请求;根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符;将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端;在缓存器中缓存与该连接请求相关的信息以及该连接标识符;以及在所述连接标识符验证成功后,在数据库中存储与该连接请求相关的信息、连接标识符,套接字服务器得到的标识套接字服务器和浏览器客户端连接关系的资源标识符。利用本发明的方案能够杜绝存储资源的大量占用和搁置,并且防止非法连接的产生。
Description
技术领域
本发明涉及信息技术数据同步领域,尤其涉及一种用于对多个套接字服务器进行分发的分发器和分发方法。
背景技术
目前,随着网络技术的发展,互联网作为一个庞大的信息资源,成为人们获取信息的最方便、快捷的途径。目前,用户通常使用个人计算机接入英特网(Internet),并通过个人计算机中安装的浏览器(Browser)访问网页,获得需要的信息。随着移动通信技术的发展,用户还可以通过支持浏览器功能的移动终端接入英特网,例如手机、个人数字助理(PersonalDigital Assistant,简称PDA)。
然而,无论是个人计算机上的浏览器还是移动终端上的浏览器,一般不提供推送服务,服务器端与客户端的信息交互依赖于客户端发起的连接,服务器端无法主动地将信息发送给客户端,从而无法实现服务器端与浏览器客户端之间的信息的实时同步。
现有技术中,最常用的实现浏览器客户端与服务器端浏览器数据同步的方式是浏览器客户端以一定频率向服务器端发送请求,如每周一次或每月一次,如果服务端有相关信息的更新则获取这些信息。然而,申请人发现该种数据同步方式存在如下技术缺陷:效率比较低、占用资源多、不能做到内容的真正实时同步更新。
在为了实现对浏览器客户端的数据实时同步,而维护浏览器客户端与网络侧的连接的情况下,存在一些浏览器客户端恶意不停地向网络侧发起连接请求的情况,而网络侧不停地向这些浏览器客户端用户分配网络资源,并将分配信息不停地存入相应的存储库中,则会占用大量的存储资源,造成存储资源的大量浪费。现有技术中缺少一种有效的机制来防止非法连接的产生。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的用于对多个套接字服务器进行分发的分发器和分发方法。
根据本发明的一个方面,提供了一种用于对多个套接字服务器进行分发的分发器,其包括:接收器,用于接收浏览器客户端发送的连接请求;分配器,用于根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符;发送器,用于将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端;缓存器,用于缓存与该连接请求相关的信息以及该连接标识符;以及数据库,用于在所述连接标识符验证成功后,存储与该连接请求相关的信息、连接标识符,套接字服务器得到的标识套接字服务器和浏览器客户端连接关系的资源标识符。
根据本发明的再一方面,提出了一种用于对多个套接字服务器进行分发的方法,包括:接收浏览器客户端发送的连接请求;根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符;将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端;在缓存器中缓存与该连接请求相关的信息以及该连接标识符;以及在所述连接标识符验证成功后,在数据库中存储与该连接请求相关的信息、连接标识符,套接字服务器得到的标识套接字服务器和浏览器客户端连接关系的资源标识符。
利用本发明的用于对多个套接字服务器进行分发的分发器和分发方法,具有以下优点:
1)能够杜绝存储资源的大量占用和搁置,并且防止非法连接的产生;
2)通过设置推送服务器,在云存储服务器端存储的数据内容发生更新的情况下,及时地将命令信息通过推送服务器发送至目标客户端,从而简单、高效地实现了云存储服务器端与浏览器客户端的数据实时同步;
3)通过增加套接字服务器、分发器和分发信息数据库,顺利实现了云存储服务器端、推送服务器和目标客户端的连接;
4)由推送服务器推送至目标客户端的命令信息为通知消息,在接收到推送服务器推送的通知消息后,目标客户端从云存储服务器端下载发生更新的数据内容,依照下载内容进行本地数据内容的同步,从而可以进一步节约系统资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为根据本发明一个实施例的实现浏览器数据同步的系统的结构示意图;
图2为根据本发明另一个实施例的实现浏览器数据同步的系统的结构示意图;
图3为图2所示实现浏览器数据同步的系统中浏览器客户端与套接字服务器建立连接的过程的示意图;
图4为图2所示实现浏览器数据同步的系统中在第一类场景下向目标客户端进行信息推送的过程的示意图;
图5为图2所示实现浏览器数据同步的系统中在第二类场景下向目标客户端进行信息推送的过程的示意图;
图6为图2所示实现浏览器数据同步的系统中在第三类场景下向目标客户端进行信息推送的过程的示意图;
图7为根据本发明实施例的实现浏览器数据同步的方法的流程图;
图8为根据本发明实施例的实现浏览器数据同步的浏览器客户端的结构示意图;
图9为根据本发明实施例的防止恶意连接的系统的结构图;
图10为根据本发明实施例的防止恶意连接的方法流程图;
图11为根据本发明实施例的对多个套接字服务器进行分发的分发器结构图;
图12为根据本发明实施例的对多个套接字服务器进行分发的方法流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明的一个示例性实施例中,提供了一种实现浏览器数据同步的系统。如图1所示,该实现浏览器数据同步的系统包括:云存储服务器端1、推送服务器2和多个浏览器客户端3、4。其中,云存储服务器端1,用于在有数据更新时向推送服务器下发条件信息和命令信息;推送服务器2,用于根据条件信息在多个浏览器客户端中确定目标客户端,并将该命令信息推送至目标客户端3;目标客户端3,用于根据该命令信息实现目标客户端与云存储服务器端的数据同步。
在图1所示的实施例中,通过设置单独的推送服务器2,在云存储服务器端存储的数据内容发生更新的情况下,及时地将命令信息通过推送服务器发送至目标客户端,从而简单、高效地实现了服务端信息与客户端实时同步。
如图1所示,多个浏览器客户端中包含有发起客户端4和目标客户端3。其中,发起客户端4,用于对存储于云存储服务器端1中的数据进行更新。该发起客户端4和目标客户端3可以属于同一个用户,也可以属于不同的用户。该发起客户端4和目标客户端3属于同一个用户的情况主要的应用场景在于:同一用户使用不同的设备(例如手机和PC)登录浏览器,其中一个(例如PC)更改收藏夹,那么需要将该更新同步到同一用户的另一设备(手机)。该发起客户端4和目标客户端3不属于同一个用户的情况的应用场景例如是不同浏览器客户端之间的信息通信。
当然,本发明也可以由云存储服务器端自身发起对数据内容的更新,在这种情况下,图1中的发起浏览器客户端4则可以不存在。这种情况的场景例如是:系统向所有浏览器客户端推送新闻消息或天气预报;或系统向所有某版本的浏览器客户端发起更新指示。
由于图1中虚线框以内的云存储服务器端1、目标客户端3和发起客户端4是现有浏览器系统中已有的,因此在此基础上添加推送服务器可以有效地利用原有的系统架构,降低实现本发明的成本。
为了实现云存储服务器端1、推送服务器2和目标客户端3的连接,如图2所示,实现浏览器客户端与云存储服务器端数据同步的系统还可以包括多个套接字服务器、分发器。
分发器,用于在接收到客户端的连接请求后,为其分配相应的套接字服务器以及连接标识符,并将用户标识信息以及连接标识符存储至分发信息数据库。详细的连接建立过程如图3所示,包括:
步骤S301,浏览器客户端向分发器提交连接请求,该连接请求中至少包括用户标识信息,对于登录用户来讲,其用户标识信息可以包括用户名,而对于非登录用户来讲,其用户标识信息可以包括用户的机器硬件标识。
对于登录用户来讲,该用户标识信息可以为一字符串。其中,该字符串除了登录用户的用户名之外,还包括登录时间和验证字符等信息。用户名为用户唯一标识号,即一个数字,用于代表一个用户。验证字符根据用户名生成,即可通过验证字符判定用户标识信息是否被更改。
对于非登录用户来讲,该用户标识信息可以包括非登录用户的机器硬件标识,其中机器硬件标识为机器唯一标识,为客户端通过用户机器硬件、系统配置等哈希生成。
此外,为了后续的目标客户端筛选,该连接请求还可以包括用户特征信息,例如:IP地址信息、浏览器版本信息,或用户分类信息等用户特征信息。其中,浏览器版本号、用户分类信息,或IP地址信息等用户特征信息可以用于后续的客户端筛选使用。
步骤S302,分发器基于该用户标识信息使用预设算法进行计算得到一个数值,根据该数值为提交连接请求的浏览器客户端分配套接字服务器;该数值是全局唯一,即连接标识符;分发器将该套接字服务器的IP地址、端口等连接信息及连接标识符发送至提交请求的浏览器客户端;
本步骤中,使用预设的算法根据登录用户的用户名计算上述数值。对于非登录用户来讲,直接采用非登录用户的机器硬件标识计算上述数值,该算法可以为循环冗余校验(CRC)32算法。
步骤S303,浏览器客户端根据接收到的套接字服务器的IP地址和端口号与对应的套接字服务器建立连接,该连接可以是传输控制协议TCP(Transmission Control Protocol)连接。在浏览器客户端与套接字服务器建立连接时,该套接字服务器得到标识该套接字服务器和浏览器客户端连接关系的资源标识符。浏览器客户端利用已经建立的连接向该套接字服务器传送其接收到的连接标识符。
步骤S304,套接字服务器接收到连接标识符后,向分发器对该连接标识符进行验证,若验证成功,则保持与浏览器客户端之间建立的连接,若验证不成功,则断开已经建立的连接。
步骤S305,分发器将用户标识信息(登录用户的用户名或非登录用户的机器硬件标识)、用户特征信息(如果有的话)以及连接标识符存储在分发信息数据库中,并且套接字服务器也将所得到的资源标识符存储在该分发信息数据库中。
需要说明的是,为了防止服务器端变化引起的分配混乱,浏览器客户端需要在隔一段时间后重新执行步骤S301-步骤S304进行连接。
此外,对于每一个套接字服务器,在分发信息数据库中均存在对应的单独数据表,以减小数据表的规模,加快在后续信息推送阶段,套接字服务器的查询速度。
通过增加分发器和套接字服务器,并且在分发器中设置分发信息数据库,使得能够在建立连接阶段将用户标识信息、连接标识符、资源标识符和用户特征信息等存储于分发信息数据库中,从而实现了推送服务器对预设目标客户端的数据内容的推送。
在信息推送阶段:推送服务器,用于将条件信息和命令信息发送至套接字服务器;套接字服务器,用于将推送服务器推送的信息转发至相应的目标客户端。详细的信息推送过程以下分三类场景进行详细说明。
(1)当该实时同步由发起客户端发起,且发起客户端和接收客户端属于同一用户时,条件信息中包括用户标识信息。举例来讲,如图4所示,该信息推送过程包括:
步骤S401,发起客户端发起对存储在云存储服务器端存储的数据进行更新;
本步骤中,云存储服务器端存储的数据包括以下之一:收藏夹信息、历史记录信息、浏览器配置信息、便签信息、登录管家信息、消息提醒信息、密钥信息等等其他可能的信息。
步骤S402,云存储服务器端向推送服务器发送条件信息和命令信息,该条件信息包括用户标识信息,例如登录用户的用户名或未登录用户的机器硬件标识,并且该条件信息中还包括标识该发起客户端与其对应的套接字服务器的连接的资源标识符;
步骤S403,推送服务器由与分发器中同样的算法根据用户标识信息计算得到一个数值,从而得到为目标客户端分配的套接字服务器,并将条件信息及命令信息发送给该为目标客户端分配的套接字服务器,其中该数值是全局唯一的,即连接标识符;
步骤S404,套接字服务器根据条件信息中的用户标识信息查询分发器中的分发信息数据库,确定与目标客户端对应的资源标识符,其中排除了标识发起客户端与其对应的套接字服务器的连接的资源标识符;
步骤S405,套接字服务器根据该资源标识符在与该目标客户端(一个或多个)的连接中向该客户端发送该命令信息。
(2)当该实时同步由发起客户端发起,且发起客户端和接收客户端属于不同登录用户时,即条件信息中包括用户标识信息,如图5所示,该信息推送过程包括:
步骤S501,发起客户端发起对存储在云存储服务器端存储的数据进行更新;
本步骤中,云存储服务器端存储的数据包括以下之一:收藏夹信息、历史记录信息、浏览器配置信息、便签信息、登录管家信息、消息提醒信息、密钥信息、新闻信息和/或用户生成的信息等等。
步骤S502,云存储服务器端向推送服务器发送条件信息和命令信息,其中该条件信息可以包括用户标识信息,例如登录用户的用户名或未登录用户的机器硬件标识;
步骤S503,推送服务器由与分发器中同样的算法根据用户标识信息计算得到一个数值,从而得到为目标客户端分配的套接字服务器,并将条件信息及命令信息发送给该为目标客户端分配的套接字服务器,其中该数值是全局唯一的,即连接标识符;
步骤S504,套接字服务器根据条件信息中的用户标识信息查询分发器中的分发信息数据库,确定目标客户端的资源标识符;
步骤S505,对应的套接字服务器依据该资源标识符,在与目标客户端(一个或多个)的连接中向该客户端发送该通知消息,至此,信息推送过程结束。
(3)当该实时同步由云存储服务器端主动发起,且条件信息中包括目标客户端的特征筛选信息,而不包括用户标识信息,其中特征筛选信息也可以为空,
这种情况下,在连接建立阶段,由浏览器客户端向分发器提交连接请求中还包含特征筛选信息,其与如前的在分发信息数据库中保存的用户特征信息相对应。
如图6所示,该信息推送过程包括:
步骤S601,云存储服务器端向推送服务器下发条件信息和命令信息中,条件信息中包含目标客户端的特征筛选信息(例如某浏览器的版本号),该命令信息例如是通知用户升级的指令;
步骤S602,推送服务器将条件信息和命令信息推送给所有的套接字服务器;
步骤S603,各个套接字服务器分别向分发器的分发信息数据库递交查询请求,该查询请求中包含特征筛选信息;分发信息数据库根据特征筛选条件查询分发信息数据库中各个浏览器客户端的用户特征信息,确定满足该特征筛选条件的目标客户端的资源标识符,并将该资源标识符返回至发起查询的各套接字服务器;
步骤S604,各套接字服务器根据接收到的资源标识符向相应的客户端发送命令信息,至此,信息推送过程结束。
为了进一步节约系统资源,由推送服务器2推送至浏览器客户端3的命令信息为通知消息。在这种情况下,浏览器客户端,还用于在接收到推送服务器推送的通知消息后,与云存储服务器端建立连接,从云存储服务器端下载发生更新的数据内容,依照下载的数据内容进行本地数据内容的同步。通过传送通知消息可以减少传送数据量,减少系统资源占用。
当然,由推送服务器推送至目标客户端的命令信息也可以为内容消息,即该内容消息中包含发生更新的数据内容,在这种情况下,目标客户端在接收到推送服务器推送的内容消息后,从该内容消息中提取发生更新的数据内容,依照提取的数据内容进行本地数据内容的同步。通过传送内容消息可以直接将内容消息推送至客户端,信息传递快速,步骤简单。
为了实现对多语言的支持、方便地调用文本,推送服务器和云存储服务器端之间采用HTTP接口。
基于图1及图2所示的实现浏览器数据同步的系统,本发明又提供了一种实现浏览器数据同步的方法。如图7所示,该实现浏览器数据同步的方法包括:
步骤S710,云存储服务器端在有数据更新时向推送服务器下发条件信息和命令信息;
步骤S720,推送服务器根据该条件信息在多个浏览器客户端中确定目标客户端,并将该命令信息发送给目标客户端;
步骤S730,目标客户端根据命令信息实现其与云存储服务器端的数据同步。
进一步地,步骤S710之前还包括浏览器客户端与套接字服务器之间建立套接字连接,该连接的建立过程如图3所示,这里就不再赘述。
进一步地,步骤S710云存储服务器端在有数据更新时向推送服务器下发条件信息和命令信息的步骤中,如果条件信息中包含目标客户端的登录用户用户名或未登录用户的机器硬件标识,包括以下两种情况:
情况一:发起客户端和接收客户端属于同一用户,该用户使用不同的设备(例如手机和PC)登录浏览器,其中一个(例如PC)更改收藏夹,那么需要将该更新同步到同一用户的另一设备(手机);
该情况下,发起客户端首先发起对存储在云存储服务器端中的有关配置、功能、或收藏的信息或其他的信息的修改。然后云存储服务器端向推送服务器发送条件信息和命令信息,该命令信息包括内容消息和通知消息,推送服务器通过套接字服务器将根据条件信息将该命令信息发送到目标客户端,其中该目标客户端排除了发起客户端。该种情况下的信息推送过程如图4所示,这里也不再赘述。
情况二:发起客户端和接收客户端不属于同一用户,从而实现不同用户之间通过客户端的信息交互。
具体来说,一个用户的客户端将条件信息和内容消息发送至云存储服务器端,云存储服务器端将条件信息和相关通知消息其发送至推送器,推送器根据条件信息将通知消息发送至目的客户端,进而目的客户端可以访问云存储服务器端以获取内容。在这种情况下的信息推送过程如图5所示,这里也不再赘述。
此外,如果条件信息中不包含目标客户端的用户标识信息,而可以包括特征筛选信息,则还包括以下情况:
情况三:云存储服务器端自身有数据更新,需要浏览器客户端与云存储服务器端进行数据同步,云存储服务器端主动向推送服务器下发条件信息和命令信息,例如:
1、云存储服务器端向某版本的所有浏览器客户端发起更新指示,以使该版本的所有浏览器客户端升级为新版本,其中,命令信息为升级为新版本的通知消息,条件为某版本浏览器的客户端,即其中的特征筛选信息为浏览器客户端的版本号。则推送服务器根据该条件信息将该命令信息发送给多个浏览器客户端中的目标客户端包括:推送服务器将升级为新版本的通知消息发送给某版本的所有浏览器客户端。
2、云存储服务器端向所有浏览器客户端推送新闻消息,其中条件为所有浏览器客户端,即特征筛选信息为空,命令信息为包含新闻消息的内容消息;则推送服务器根据该条件信息将该命令信息发送给多个浏览器客户端中的目标客户端包括:推送服务器将包含新闻消息的内容消息发送给所有浏览器客户端。应该理解,发送的也可以是通知消息。
3、云存储服务器端向不同地区的浏览器客户端推送天气预报,其中条件为某一地区的浏览器客户端,即特征筛选信息为该某一地区对应的IP段,命令信息为包含天气预报的内容消息;则推送服务器根据该条件信息将该命令信息发送给多个浏览器客户端中的目标客户端包括:推送服务器将包含天气预报的内容消息发送给某一地区的浏览器客户端。应该理解,发送的也可以是通知消息。
在这种情况下的信息推送过程如图6所示,这里也不再赘述。
基于图1及图2所示的实现浏览器数据同步的系统,本发明又提供了一种实现浏览器数据同步的浏览器客户端。如图8所示,该浏览器客户端包括:连接模块,用于通过分发器与套接字服务器建立连接关系,并从相应的套接字服务器接收命令信息;应用模块,用于根据该命令信息,执行其对应的应用操作。其中,所述命令信息为通知消息或内容消息。
如图8所示,连接模块又包括:分发器连接子模块,用于向所述分发器提交连接请求,该连接请求中至少包括用户标识信息,并接收由分发器返回的被分配的套接字服务器的连接信息及连接标识符;套接字连接子模块,用于根据接收到的套接字服务器的连接信息及所述连接标识符与对应的套接字服务器建立套接字连接,并通过该套接字连接从相应的套接字服务器接收命令信息。其中,所述用户标识信息为登录用户的用户名或非登录用户的机器硬件标识。
如图8所示,上述浏览器客户端中还可以包括:云存储通信模块,用于响应应用模块的应用操作,与云存储服务器端进行通信。
综上所述,本发明提供的这种实现浏览器数据同步的系统、方法及浏览器客户端,通过设置单独的推送服务器,在云存储服务器端存储的浏览器相关内容发生更新的情况下,能够及时地将命令信息通过该推送服务器发送至多个浏览器客户端中的目标客户端,解决了无法简单有效地将浏览器客户端与云存储服务器端数据实时同步的问题,从而简单、高效地实现了浏览器客户端与云存储服务器端的数据同步。由此,可以在原有架构的基础上使浏览器客户端可以高效地、主动地、资源节约地将信息与云存储服务器端实时同步。该系统及方法还能够在原有系统架构的基础上实现,有效利用原有架构,实现成本有效。
在上述结合附图所描述的本发明的实现浏览器数据同步的方法中,在建立连接阶段,如果存在一些浏览器客户端恶意不停地向分发器发出请求,则分发器会相应地不停地向这些用户分配套接字服务器以及对应的连接标识符,并且把分配信息不停地存入分发信息存储库中。然而这些浏览器客户端并不真正建立连接,由此将占用大量的存储资源,造成存储资源的大量浪费。或者存在一些浏览器客户端并未向分发器发出请求,而是用非法的连接标识符尝试与套接字服务器进行连接。
为了杜绝存储资源的大量占用和搁置并且防止非法连接的产生,根据本发明的又一实施例,提出了一种防止恶意连接的系统,图9示出了该系统的结构图。
参照图9,该防止恶意连接的系统包括浏览器客户端、分发器和套接字服务器。
浏览器客户端用于向分发器发送连接请求,以请求与套接字服务器建立连接,并根据所述分发器的分配与对应的套接字服务器建立连接。
分发器用于接收浏览器客户端发送的连接请求,并根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符,分发器将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端,并将与该连接请求相关的信息以及该连接标识符缓存到缓存器中。与该连接请求相关的信息可以包括连接请求中包含的用户标识信息以及用户特征信息。
套接字服务器用于经由所建立的与所述浏览器客户端的连接从浏览器客户端接收所述连接标识符,并根据缓存在缓存器中的连接标识符对该接收到的连接标识符进行验证,根据验证结果保持或断开所述连接。
如果套接字服务器对所述连接标识符的验证结果为通过,则保持所述已经建立的连接,如果未通过,则断开所述连接。该验证是指验证所述套接字服务器从所述提交请求的浏览器客户端接收到连接标识符是否保存在所述缓存器中,如果有保存,则验证结果为合法,否则为非法。
浏览器客户端根据分发器的分配与对应的套接字服务器建立连接包括:浏览器客户端根据从分发器接收的连接信息和连接标识符与套接字服务器建立连接,该连接是TCP连接。
缓存器对缓存在其中的信息保存一预定时间段后释放。该预定时间段是对缓存器预先进行设定的,可根据实际需要来设置该时间段的大小,例如可以是30秒,该缓存器自动丢弃超过该时长的存储内容,释放存储空间,可根据实际需要来设置该时间段的长短大小。
该缓存器可以使用任何合适的缓存技术来实现,例如可使用redis实现。redis里面可以维护一个以连接标识符为关键字的信息列表,其中可包括连接标识符、用户标识信息、机器硬件标识、版本号等信息。redis是一个键值存储系统,是一个高性能的键值数据库,它支持存储的值的类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。
如果浏览器客户端在与所述套接字服务器建立连接之后的另一预定时间段内,浏览器客户端未向套接字服务器发送连接标识符,则套接字服务器断开所建立的连接。该预定时间段被预先设定,例如可以是10秒,可根据实际需要来设置该时间段的长短。通过设置该预定时间段,可节约系统资源,防止恶意连接的产生。
分发器根据连接请求为浏览器客户端分配套接字服务器包括:分发器根据从浏览器客户端接收的连接请求中所包含的用户标识信息使用预设算法进行计算得到一个数值,根据该数值为提交连接请求的浏览器客户端分配套接字服务器。该数值是全局唯一的,即连接标识符。
所述用户标识信息包括:登录用户的用户名、非登录用户的机器硬件标识。对于登录用户来讲,其用户标识信息可以包括用户名,而对于非登录用户来讲,其用户标识信息可以包括用户的机器硬件标识。对于登录用户来讲,该用户标识信息可以为一字符串。其中,该字符串除了登录用户的用户名之外,还包括登录时间和验证字符等信息。用户名为用户唯一标识号,即一个数字,用于代表一个用户。验证字符根据用户名生成,即可通过验证字符判定用户标识信息是否被更改。对于非登录用户来讲,该用户标识信息可以包括非登录用户的机器硬件标识,其中机器硬件标识为机器唯一标识,为客户端通过用户机器硬件、系统配置等哈希生成。
此外,为了后续的目标客户端筛选,该连接请求还可以包括用户特征信息,例如:IP地址信息、浏览器版本信息,或用户分类信息等用户特征信息。其中,浏览器版本号、用户分类信息,或IP地址信息等用户特征信息可以用于后续的浏览器客户端筛选使用。
浏览器客户端在建立与套接字服务器的连接时,套接字服务器得到标识该套接字服务器和浏览器客户端连接关系的资源标识符。
套接字服务器在对连接标识符验证成功后,从所述缓存器中提取与该连接请求相关的信息、连接标识符,将提取出的信息连同所得到的资源标识符一并存入分发器的数据库。
该数据库可以使用任何合适的数据库来实现,例如可以选择文档类型数据库,本发明优选地选择对数据列数没有限定的数据库来实现,以使得数据项目灵活可变,有利于对数据项目缺失和扩充的兼容。例如可以使用MongoDB集群来实现该数据库,但是也可以使用CouchDB等类似数据库来实现。具体来说,采用集群的形式可以实现以下优势:1.分布式存储,提高写入更新速度;2.分布式查询计算,提高查询效率;3.集群内冗余备份,提高数据可靠性。
该系统还进一步包括云存储服务器端和推送服务器,其中:云存储服务器端,用于在有数据更新时向所述推送服务器下发条件信息和命令信息;推送服务器,用于根据该条件信息确定目标客户端,并通过所述套接字服务器将命令信息发送给目标客户端;以及目标客户端,用于根据命令信息实现其与云存储服务器端的数据同步,目标客户端是多个浏览器客户端中的客户端。
本发明的该防止恶意连接的系统将分发器的分发信息存储库构建为包括缓存器和数据库,其中对缓存器预先设置了预定时间段,缓存器对缓存在其中的信息保存该预定时间后就释放;另一方面浏览器客户端在与所述套接字服务器建立连接之后的另一预定时间段内,如果未向所述套接字服务器发送连接标识符,则套接字服务器断开建立的连接,从而杜绝存储资源的大量占用和搁置并且防止非法连接的产生。
根据本发明的再一实施例,还提出了一种防止恶意连接的方法,图10示出了该方法的流程图。
参照图10,该防止恶意连接的方法包括步骤:步骤S1001,浏览器客户端向分发器发送连接请求,以请求与套接字服务器建立连接。
步骤S1002,分发器接收浏览器客户端发送的连接请求,并根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符,分发器将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端,并将与该连接请求相关的信息以及该连接标识符缓存到缓存器中。
在该步骤,分发器根据从浏览器客户端接收的连接请求中所包含的用户标识信息使用预设算法进行计算得到一个数值,根据该数值为提交连接请求的浏览器客户端分配套接字服务器。该数值是全局唯一的,即连接标识符。通过设置该预定时间段,可节约系统资源,防止恶意连接的产生。
所述用户标识信息包括:登录用户的用户名、非登录用户的机器硬件标识。对于登录用户来讲,其用户标识信息可以包括用户名,而对于非登录用户来讲,其用户标识信息可以包括用户的机器硬件标识。对于登录用户来讲,该用户标识信息可以为一字符串。其中,该字符串除了登录用户的用户名之外,还包括登录时间和验证字符等信息。用户名为用户唯一标识号,即一个数字,用于代表一个用户。验证字符根据用户名生成,即可通过验证字符判定用户标识信息是否被更改。对于非登录用户来讲,该用户标识信息可以包括非登录用户的机器硬件标识,其中机器硬件标识为机器唯一标识,为浏览器客户端通过用户机器硬件、系统配置等哈希生成。
此外,为了后续的目标客户端筛选,该连接请求还可以包括用户特征信息,例如:IP地址信息、浏览器版本信息,或用户分类信息等用户特征信息。其中,浏览器版本号、用户分类信息,或IP地址信息等用户特征信息可以用于后续的客户端筛选使用。
所述缓存器对缓存在其中的信息保存一预定时间段后释放。该预定时间段是对缓存器预先进行设定的,可根据实际需要来设置该时间段的大小,例如可以是30秒,该缓存器自动丢弃超过该时长的存储内容,释放存储空间。
该缓存器可以使用任何合适的缓存技术来实现,例如可使用Redis实现。Redis里面可以维护一个以资源标识符为关键字的信息列表,其中可包括用户标识信息、机器硬件标识、版本号等信息。
在步骤S1003,浏览器客户端根据分发器的分配与对应的套接字服务器建立连接。
浏览器客户端在建立与套接字服务器的连接时,套接字服务器得到标识套接字服务器和浏览器客户端连接关系的资源标识符。
步骤S1004,套接字服务器经由所建立的与所述浏览器客户端的连接从浏览器客户端接收所述连接标识符,并根据缓存在缓存器中的连接标识符对该接收到的连接标识符进行验证,根据验证结果保持或断开所述连接。
如果浏览器客户端在与所述套接字服务器建立连接之后的另一预定时间段内,浏览器客户端未向套接字服务器发送连接标识符,则套接字服务器断开所建立的连接。该预定时间段被预先设定,例如可以是10秒,可根据实际需要来设置该时间段的长短。
在该步骤,如果套接字服务器对所述连接标识符的验证结果为通过,则保持所述已经建立的连接,如果未通过,则断开所述连接。该验证是指验证所述套接字服务器从所述提交请求的浏览器客户端接收到连接标识符是否保存在所述缓存器中,如果有保存,则验证结果为合法,否则为非法。
套接字服务器在对连接标识符验证成功后,从所述缓存器中提取与该连接请求相关的信息、连接标识符,将提取出的信息连同所得到的资源标识符一并存入分发器的数据库。
该数据库可以使用任何合适的数据库来实现,例如可以选择文档类型数据库,本发明优选地选择对数据列数没有限定的数据库来实现,以使得数据项目灵活可变,有利于对数据项目缺失和扩充的兼容。例如可以使用MongoDB集群来实现该数据库,但是也可以使用CouchDB等类似数据库来实现。该方法还进一步包括步骤S1005,云存储服务器端在有数据更新时向所述推送服务器下发条件信息和命令信息。
步骤S1006,推送服务器根据该条件信息确定目标客户端,并通过套接字服务器将所述命令信息发送给所述目标客户端。
步骤S1007,目标客户端根据所述命令信息实现其与云存储服务器端的数据同步,目标客户端是多个浏览器客户端中的客户端。
根据本发明的再一实施例,还提供了一种防止恶意连接的系统。该系统包括:云存储服务器端、推送服务器和多个浏览器客户端、分发器和套接字服务器。
云存储服务器端用于在有数据更新时向所述推送服务器下发条件信息和命令信息。
推送服务器用于根据该条件信息在所述多个浏览器客户端中确定目标客户端,并通过套接字服务器将所述命令信息发送给所述目标客户端。
目标客户端用于根据所述命令信息实现其与云存储服务器端的数据同步。
分发器连接多个浏览器客户端和套接字服务器,用于接收所述多个浏览器客户端发送的与套接字服务器进行连接的连接请求,并根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符,分发器将所分配的套接字服务器的连接信息与该连接标识符发送至所述多个浏览器客户端,并将与连接请求相关的信息以及该连接标识符缓存到缓存器中。
其中分发器根据从浏览器客户端接收的连接请求中所包含的用户标识信息使用预设算法进行计算得到一个数值,根据该数值为提交连接请求的浏览器客户端分配套接字服务器,其中该数值是全局唯一的,即连接标识符。所述用户标识信息包括:登录用户的用户名、非登录用户的机器硬件标识。
套接字服务器连接所述分发器、推送服务器和多个浏览器客户端,用于从所述多个浏览器客户端接收所述连接标识符并进行验证,根据验证结果来保持或断开与所述多个浏览器客户端之间的连接,并用于将所述命令信息从推送服务器转发给所述目标客户端。该验证是指验证所述套接字服务器从所述提交请求的浏览器客户端接收到连接标识符是否保存在所述缓存器中,如果有保存,则验证结果为合法,否则为非法。
其中所述连接是TCP连接,如果所述套接字服务器对所述连接标识符的验证结果为通过,则保持所述已经建立的连接,如果未通过,则断开所述连接。
上述缓存器对缓存在其中的信息保存第一预定时间段后释放。如果所述浏览器客户端在与所述套接字服务器建立连接之后的第二预定时间段内,所述浏览器客户端未向所述套接字服务器发送所述连接标识符,则所述套接字服务器断开所述建立的连接。
浏览器客户端在建立与所述套接字服务器的连接时,所述套接字服务器得到标识套接字服务器和浏览器客户端连接关系的资源标识符。
套接字服务器在对连接标识符验证成功后,从所述缓存器中提取与该连接请求相关的信息、连接标识符,将提取出的信息连同所得到的资源标识符一并存入分发器的数据库。
上述目标客户端是多个所述浏览器客户端中的客户端。
根据本发明的再一实施例,还提供了一种用于对多个套接字服务器进行分发的分发器,图11为该分发器的结构框图。参照图11,该分发器包括:接收器1101,用于接收浏览器客户端发送的连接请求;分配器1102,用于根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符;发送器1103,用于将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端;缓存器1104,用于缓存与该连接请求相关的信息以及该连接标识符;以及1105数据库,用于在所述连接标识符验证成功后,存储与该连接请求相关的信息、连接标识符,套接字服务器得到的标识套接字服务器和浏览器客户端连接关系的资源标识符。其中缓存器1104对缓存在其中的信息保存第一预定时间段后释放。
根据本发明的再一实施例,还提供了一种用于对多个套接字服务器进行分发的方法,图12为该方法的流程图。参照图12,该方法包括步骤:步骤1201,接收浏览器客户端发送的连接请求;步骤1202,根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符;步骤1203,将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端;步骤1204,在缓存器中缓存与该连接请求相关的信息以及该连接标识符;以及步骤1205,在所述连接标识符验证成功后,在数据库中存储与该连接请求相关的信息、连接标识符,套接字服务器得到的标识套接字服务器和浏览器客户端连接关系的资源标识符。
其中,缓存器对缓存在其中的信息保存第一预定时间段后释放。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的相关设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (4)
1.一种用于对多个套接字服务器进行分发的分发器,包括:
接收器,用于接收浏览器客户端发送的连接请求;
分配器,用于根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符;
发送器,用于将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端;
缓存器,用于缓存与该连接请求相关的信息以及该连接标识符;以及
数据库,用于在所述连接标识符验证成功后,存储与该连接请求相关的信息、连接标识符,套接字服务器得到的标识套接字服务器和浏览器客户端连接关系的资源标识符。
2.根据权利要求1所述的分发器,其中,所述缓存器对缓存在其中的信息保存第一预定时间段后释放。
3.一种用于对多个套接字服务器进行分发的方法,包括:
接收浏览器客户端发送的连接请求;
根据该连接请求为该浏览器客户端分配套接字服务器,并为该连接分配全局唯一的连接标识符;
将所分配的套接字服务器的连接信息与该连接标识符发送至所述浏览器客户端;
在缓存器中缓存与该连接请求相关的信息以及该连接标识符;以及
在所述连接标识符验证成功后,在数据库中存储与该连接请求相关的信息、连接标识符,套接字服务器得到的标识套接字服务器和浏览器客户端连接关系的资源标识符。
4.根据权利要求3所述的方法,其中,所述缓存器对缓存在其中的信息保存第一预定时间段后释放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210548554.6A CN102984276B (zh) | 2012-12-17 | 2012-12-17 | 用于对多个套接字服务器进行分发的分发器和分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210548554.6A CN102984276B (zh) | 2012-12-17 | 2012-12-17 | 用于对多个套接字服务器进行分发的分发器和分发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102984276A true CN102984276A (zh) | 2013-03-20 |
CN102984276B CN102984276B (zh) | 2015-11-25 |
Family
ID=47858009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210548554.6A Active CN102984276B (zh) | 2012-12-17 | 2012-12-17 | 用于对多个套接字服务器进行分发的分发器和分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102984276B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468642A (zh) * | 2013-09-12 | 2015-03-25 | 腾讯科技(深圳)有限公司 | 浏览器缓存资源预测方法和系统、反向代理装置及浏览器 |
CN104468488A (zh) * | 2013-09-17 | 2015-03-25 | 北京千橡网景科技发展有限公司 | 用于对匿名用户进行推荐的方法和设备 |
CN106331148A (zh) * | 2016-09-14 | 2017-01-11 | 郑州云海信息技术有限公司 | 一种客户端数据读取时的缓存管理方法及其装置 |
CN106790203A (zh) * | 2017-01-03 | 2017-05-31 | 上海金融云服务集团安全技术有限公司 | 一种基于浏览器的终端动态锁定标记方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1305161A (zh) * | 1999-11-24 | 2001-07-25 | 三星电子株式会社 | 普通环球网浏览器的推送技术 |
US6421781B1 (en) * | 1998-04-30 | 2002-07-16 | Openwave Systems Inc. | Method and apparatus for maintaining security in a push server |
-
2012
- 2012-12-17 CN CN201210548554.6A patent/CN102984276B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421781B1 (en) * | 1998-04-30 | 2002-07-16 | Openwave Systems Inc. | Method and apparatus for maintaining security in a push server |
CN1305161A (zh) * | 1999-11-24 | 2001-07-25 | 三星电子株式会社 | 普通环球网浏览器的推送技术 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468642A (zh) * | 2013-09-12 | 2015-03-25 | 腾讯科技(深圳)有限公司 | 浏览器缓存资源预测方法和系统、反向代理装置及浏览器 |
CN104468642B (zh) * | 2013-09-12 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 浏览器缓存资源预测方法和系统、反向代理装置及浏览器 |
CN104468488A (zh) * | 2013-09-17 | 2015-03-25 | 北京千橡网景科技发展有限公司 | 用于对匿名用户进行推荐的方法和设备 |
CN106331148A (zh) * | 2016-09-14 | 2017-01-11 | 郑州云海信息技术有限公司 | 一种客户端数据读取时的缓存管理方法及其装置 |
CN106790203A (zh) * | 2017-01-03 | 2017-05-31 | 上海金融云服务集团安全技术有限公司 | 一种基于浏览器的终端动态锁定标记方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102984276B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103024052A (zh) | 实现浏览器数据同步的系统和方法 | |
CN102984277B (zh) | 防止恶意连接的系统和方法 | |
CN102984278A (zh) | 实现浏览器数据同步的系统和方法 | |
CN101064630B (zh) | 一种数据同步方法及系统 | |
CN109522330B (zh) | 基于区块链的云平台数据处理方法、装置、设备及介质 | |
CN103024050B (zh) | 分发器和对多个服务器进行分发的方法 | |
US10187445B2 (en) | System, method and browser client for enabling browser data synchronization | |
CN103037312B (zh) | 消息推送方法及装置 | |
CN103647803A (zh) | 一种移动终端订阅内容的方法及装置 | |
CN104506643A (zh) | 分布式存储系统的服务器及服务器之间的数据同步方法 | |
CN103841134A (zh) | 基于api发送、接收信息的方法、装置及系统 | |
CN111221469B (zh) | 同步缓存数据的方法、装置和系统 | |
CN103118355A (zh) | 一种移动终端用户信息的显示方法、移动终端和服务系统 | |
RU2316131C2 (ru) | Способ хранения страниц в памяти мобильного устройства (варианты) и мобильное устройство для его осуществления | |
CN102411598A (zh) | 一种实现数据一致性的方法及其系统 | |
CN104618444A (zh) | 一种基于反向代理服务器处理请求的方法和装置 | |
CN104185036A (zh) | 一种视频文件回源方法及装置 | |
CN103139761A (zh) | 一种信息实时展示的方法和移动通讯终端 | |
CN103973704A (zh) | 基于wifi设备的域名解析方法、装置及系统 | |
CN103024049B (zh) | 实现浏览器数据同步的系统 | |
CN102984276B (zh) | 用于对多个套接字服务器进行分发的分发器和分发方法 | |
CN103024051B (zh) | 一种进行服务器分发的装置、方法和相应系统 | |
CN101820431A (zh) | 通信客户端及通信业务发起方法 | |
CN103064899B (zh) | 一种分发信息数据库系统 | |
CN103036989A (zh) | 套接字服务器及套接字服务方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220719 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |