CN103036989B - 套接字服务器及套接字服务方法 - Google Patents

套接字服务器及套接字服务方法 Download PDF

Info

Publication number
CN103036989B
CN103036989B CN201210548938.8A CN201210548938A CN103036989B CN 103036989 B CN103036989 B CN 103036989B CN 201210548938 A CN201210548938 A CN 201210548938A CN 103036989 B CN103036989 B CN 103036989B
Authority
CN
China
Prior art keywords
client
information
server
connection
socket server
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.)
Active
Application number
CN201210548938.8A
Other languages
English (en)
Other versions
CN103036989A (zh
Inventor
吴浩
任寰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210548938.8A priority Critical patent/CN103036989B/zh
Publication of CN103036989A publication Critical patent/CN103036989A/zh
Priority to PCT/CN2013/083624 priority patent/WO2014094468A1/zh
Priority to US14/652,844 priority patent/US10187445B2/en
Application granted granted Critical
Publication of CN103036989B publication Critical patent/CN103036989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种套接字服务器及套接字服务方法,用于将来自推送服务器的命令信息发送给多个浏览器客户端中的目标客户端,所述套接字服务器包括一个连接模块,其用于与所述浏览器客户端建立套接字连接,当所述浏览器客户端发起与所述套接字服务器的连接时,所述连接模块接受该连接,并获得该连接的资源标识符,并且,套接字服务器基于传输控制协议进行连接,并采用异步调度方式向浏览器客户端中的目标客户端发送命令信息。本发明能实现同步数据的高效发送,缩短执行时间,降低资源消耗,提高系统效率,改进业务的实时性。

Description

套接字服务器及套接字服务方法
技术领域
本发明涉及信息技术数据同步领域,尤其涉及一种用于浏览器数据同步系统的套接字服务器及套接字服务方法。
背景技术
目前,随着网络技术的发展,互联网作为一个庞大的信息资源,成为人们获取信息的最方便、快捷的途径。目前,用户通常使用个人计算机接入英特网(Internet),并通过个人计算机中安装的浏览器(Browser)访问网页,获得需要的信息。随着移动通信技术的发展,用户还可以通过支持浏览器功能的移动终端接入英特网,例如手机、个人数字助理(PersonalDigital Assistant,简称PDA)。
然而,无论是个人计算机上的浏览器还是移动终端上的浏览器,一般不提供推送服务,服务器端与客户端的信息交互依赖于客户端发起的连接,服务器端无法主动地将信息发送给客户端,从而无法实现服务器端与浏览器客户端之间的信息的实时同步。
现有技术中,最常用的实现浏览器客户端与服务器端浏览器数据同步的方式是浏览器客户端以一定频率向服务器端发送请求,如每周一次或每月一次,如果服务端有相关信息的更新则获取这些信息。然而,申请人发现该种数据同步方式存在如下技术缺陷:效率比较低、占用资源多、不能做到内容的真正实时同步更新。
此外,在现有技术中,在服务器与客户端之间建立连接时常使用套接字(socket)服务,所谓套接字是网络中客户端与服务器的一种交流方式,当服务器与客户端要建立连接并进行数据传送时,需要将服务器和需要建立连接的客户端(目标客户端)进行对接,而套接字可以看作是这种对接的“对接号”,只有服务器与目标客户端的“对接号”相同,才能够进行连接以传送数据。而套接字服务就是为服务器和客户端接供的对接服务。 然而,通常的套接字服务在实现向多个客户端进行数据推送时采用同步调度方式,即当套接字服务器向客户端发送一个消息后,等待该客户端进行接收和确认,然后向下一个客户端推送消息。并且,一般的套接字服务采用http协议,http协议会占用较多的系统资源,在业务量大时会引起资源的快速消耗,从而降低数据同步的实时性。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的套接字服务器及套接字服务方法。
本发明提出一种套接字服务器,用于将来自推送服务器的命令信息发送给多个浏览器客户端中的目标客户端,所述套接字服务器包括连接模块,该连接模块用于与所述浏览器客户端建立套接字连接,其中,当所述浏览器客户端发起与所述套接字服务器的连接时,所述连接模块接受该连接,并获得该连接的资源标识符。
根据本发明的一种具体实施方式,所述连接模块还用于经由所述连接接收从所述浏览器客户端发送的连接标识符;所述套接字服务器还包括验证模块,所述验证模块用于:当接收从所述浏览器客户端发送的连接标识符时,查询分发信息数据库以验证该连接标识符是否存在于该分发信息数据库中。
根据本发明的一种具体实施方式,所述验证模块还用于:当所述连接标识符存在于该分发信息数据库时,将所述资源标识符存入所述分发信息数据库。
根据本发明的一种具体实施方式,所述验证模块还用于:当所述连接标识符不存在于该分发信息数据库时,指示所述连接模块断开所述连接。
根据本发明的一种具体实施方式,还包括一个查询模块,当所述推送服务器将条件信息和命令信息发送给为目标客户端分配的套接字服务器时,所述查询模块根据所述条件信息查询分发信息数据库以确定目标客户端。
根据本发明的一种具体实施方式,该连接模块根据条件信息在分发信息数据库中查询资源标识符来确定目标客户端。
根据本发明的一种具体实施方式,当所述套接字服务器接收到了命令信息并已根据条件信息确定了目标客户端,并且目标客户端不止一个时,所述连接模块对其中一个客户端发送命令消息之后,不等待其接收确认就直接向下一个客户端发送命令消息。
根据本发明的一种具体实施方式,所述连接模块采用传输控制协议与所述浏览器客户端进行连接和命令信息的发送。
本发明还提出一种套接字服务方法,应用于套接字服务器中,该套接字服务器能够与浏览器客户端建立套接字连接,将来自推送服务器的命令信息发送给多个浏览器客户端中的目标客户端,其中,该方法包括如下步骤:当所述浏览器客户端发起与所述套接字服务器的连接时,接受该连接,并获得该连接的资源标识符。
根据本发明的一种具体实施方式,该方法还包括:经由所述连接接收从所述浏览器客户端发送的连接标识符,并查询分发信息数据库以验证该连接标识符是否存在于该分发信息数据库中。
根据本发明的一种具体实施方式,该方法还包括:当所述连接标识符存在于该分发信息数据库时,将所述资源标识符存入所述分发信息数据库。
根据本发明的一种具体实施方式,当所述连接标识符不存在于该分发信息数据库时,断开所述连接。
根据本发明的一种具体实施方式,当所述推送服务器将条件信息和命令信息发送给为目标客户端分配的套接字服务器时,根据所述条件信息查询所述分发信息数据库以确定目标客户端。
根据本发明的一种具体实施方式,根据条件信息在分发信息数据库中查询资源标识符来确定目标客户端。
根据本发明的一种具体实施方式,当接收到了命令信息并已根据条件信息确定了目标客户端,并且目标客户端不止一个时,对其中一个客户端发送命令消息之后,不等待其接收确认就直接向下一个客户端发送命令消息。
根据本发明的一种具体实施方式,采用传输控制协议与所述浏览器客户端进行连接和命令信息的发送。
从上述技术方案可以看出,本发明具有以下有益效果:
(1)通过套接字服务器、分发器和分发信息数据库,顺利实现了云存储服务器端、推送服务器和目标客户端的连接;
(2)本发明的套接字服务器采用异步调度方式,从而达到数据的高效发送,进而缩短执行时间,提高系统效率而且减少不同客户端接收到消息的时间差,改进业务的实时性。
(3)本发明在实现套接字服务器时采用更为底层的传输控制协议协议(Transmission Control Protocol),从而实现资源消耗的减小,在有限的资源条件下提高系统的业务处理能力。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为根据本发明一个实施例的实现浏览器数据同步的系统的结构示意图;
图2为根据本发明另一个实施例的实现浏览器数据同步的系统的结构示意图;
图3为图2所示实现浏览器数据同步的系统中浏览器客户端与套接字服务器建立连接的过程的示意图;
图4为图2所示实现浏览器数据同步的系统中在第一类场景下向目标客户端进行信息推送的过程的示意图;
图5为图2所示实现浏览器数据同步的系统中在第二类场景下向目标客户端进行信息推送的过程的示意图;
图6为图2所示实现浏览器数据同步的系统中在第三类场景下向目标客户端进行信息推送的过程的示意图;
图7为根据本发明实施例的实现浏览器数据同步的方法的流程图;
图8为根据本发明实施例的实现浏览器数据同步的浏览器客户端的结构示意图;
图9为根据本发明实施例的套接字服务器的结构示意图;
图10为应用于本发明实施例的套接字服务器的套接字服务方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明的一个示例性实施例中,提供了一种实现浏览器数据同步的系统。如图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所示,实现浏览器客户端与云存储服务器端数据同步的系统还可以包括多个套接字服务器(socket server)、分发器。
根据本发明,为了提高实现浏览器客户端与云存储服务器端的数据同步效率,提出了推送服务器与云存储服务器端之间专用于提供套接字服务的套接字服务器。套接字服务器用于与多个浏览器客户端建立套接字连接,并且在接收到条件信息和命令信息时,根据该条件信息从多个浏览器客户端中确定目标客户端,并将命令信息发送到目标客户端。
所述的套接字服务器是一种虚拟服务器,可对现有的提供套接字服务的服务器进行配置实现,也可以由是具有独立功能的软件或软件模块来实现。
分发器,用于在接收到客户端的连接请求后,为其分配相应的套接字服务器以及连接标识符,并将用户标识信息以及连接标识符存储至分发信息数据库。详细的连接建立过程如图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,各套接字服务器根据接收到的资源标识符向相应的客户端发送命令信息,至此,信息推送过程结束。
基于图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所示,所述套接字服务器通常都需要包括连接模块,该连接模块用于与多个浏览器客户端建立套接字连接,并且与建立连接的浏览器客户端进行信息交互。
如前所述,所述连接模块用于与浏览器客户建立套接字连接,具体来说,当浏览器客户端发起与套接字服务器的连接时,所述连接模块接受该连接,并获得该连接的资源标识符,资源标识符是套接字服务器的系统生成的用于标识该浏览器客户端与该套接字服务器的连接的标识符。
在一种具体实施方式中,浏览器客户端向分发器提交连接请求,该连接请求至少包括用户标识信息,分发器由该用户标识信息使用预设算法进行计算得到一个数值,根据该数值为提交连接请求的浏览器客户端分配套接字服务器,该数值是全局唯一的,即连接标识符;分发器接着将套接字服务器的连接信息及连接标识符发送给提交连接请求的浏览器客户端,提交连接请求的浏览器客户端根据接收到的套接字服务器的连接信息及连 接标识符与对应的套接字服务器的连接模块建立连接。
如前所述,浏览器数据同步系统中可设置分发信息数据库,根据一种具体实施方式,当系统包括分发器时,该分发信息数据库可设置于分发器中。分发信息数据库中存储有用户标识信息,在上述建立套接字连接的过程中,提交请求的浏览器客户端还可根据接收到的套接字服务器的连接信息向相应的套接字服务器传送连接标识符。此时,套接字服务器还可包括一个验证模块,以对该接收到的连接标识符进行验证。在进行验证时,该验证模块在分发信息数据库中查询该连接标识符,以验证该连接标识符是否存在于该分发信息数据库中,从而验证该请求与该套接字服务器进行套接字连接的浏览器客户端是否合法。
当验证模块验证该连接标识符存在于所述分发信息数据库中时,套接字服务器将该资源标识符存储于分发信息数据库中。当验证模块验证该连接标识符不存在于所述分发信息数据库中时,验证模块指示连接模块断开与该浏览器客户端的连接。
如前所述,当推送服务器将条件信息和命令信息发送给为目标客户端分配的套接字服务器时,套接字服务器根据所述条件信息查询分发信息数据库以确定目标客户端。当条件信息中包括用户标识信息时,套接字服务器根据该用户标识信息进行查询。当分发信息数据库中还保存有资源标识符时,套接字服务器根据条件信息在分发信息数据库中查询资源标识符来确定目标客户端。此时,套接字服务器还包括一个查询模块,该查询模块完成上述查询过程。本发明的套接字服务器在向目标客户端发送命令信息时采用异步调度的模式。也就是说,当套接字服务器接收到了命令信息,且已根据条件信息确定了目标客户端之后,采用异步方式向目标客户端发送命令信息。所谓异步方式是指,当目标客户端不止一个时,连接模块对其中一个客户端发送命令消息之后,不等待其接收确认就直接向下一个客户端发送命令消息。该过程连续进行从而达到高效发送,进而缩短执行时间,提高系统效率而且减少不同客户端接收到的消息的时间差,改进业务的实时性。
下面参照附图10对应用于套接字服务器的套接字服务方法的具体实施方式进行具体说明。根据上述对于套接字服务器的描述可知,本发明的 应用于套接字服务器中的套接字服务方法至少包括步骤S1010:当浏览器客户端发起与所述套接字服务器的连接时,套接字服务器接受该连接,并获得该连接的资源标识符。
根据本发明的一种具体实施方式,在步骤S1010之后,套接字服务方法还包括步骤S1020:套接字服务器经由所述连接接收从所述浏览器客户端发送的连接标识符,并查询分发信息数据库以验证该连接标识符是否存在于该分发信息数据库中。在步骤S1020之后,优选地,套接字服务方法还包括步骤S1030:当所述连接标识符存在于该分发信息数据库时,套接字服务器将所述资源标识符存入所述分发信息数据库;当所述连接标识符不存在于该分发信息数据库时,套接字服务器断开所述连接。
根据本发明的另一实施方式,套接字服务方法还包括步骤S1040:当所述推送服务器将条件信息和命令信息发送给为目标客户端分配的套接字服务器时,该套接字服务器根据所述条件信息查询所述分发信息数据库以确定目标客户端。
步骤S1040优选为:该套接字服务器根据条件信息在分发信息数据库中查询资源标识符来确定目标客户端。
根据本发明的另一实施方式,套接字服务方法还包括:当套接字服务器接收到了命令信息并已根据条件信息确定了目标客户端,并且目标客户端不止一个时,该套接字服务器对其中一个客户端发送命令消息之后,不等待其接收确认就直接向下一个客户端发送命令消息。由前面的说明可知,本发明中的一个套接字服务器可能同时与多个浏览器客户端进行连接,各浏览器客户端与套接字服务器之间的连接状态也可能并不相同。并且,不同的条件信息所指定的目标客户端也可能是不同的。因此,本发明的套接字服务方法中,对于各个不同的浏览器客户端,根据响应于来自推送服务器的不同条件信息和命令信息可执行不同的步骤。
在具体实现上述具有异步调度方式的套接字服务器及其套接字服务方法时,可以使用javascript语言在Linux-CentOS环境NodeJS套接字服务器进行开发,并且套接字服务器的连接模块采用传输控制协议(TCP)与浏览器客户端进行连接和命令信息的发送。相比于通常采用http协议的web socket,采用Tcp协议可降低系统的资源消耗,提高系统的业务处理 能力。
为了进一步节约系统资源,由推送服务器2推送至浏览器客户端3的命令信息为通知消息。在这种情况下,浏览器客户端,还用于在接收到推送服务器推送的通知消息后,与云存储服务器端建立连接,从云存储服务器端下载发生更新的数据内容,依照下载的数据内容进行本地数据内容的同步。通过传送通知消息可以减少传送数据量,减少系统资源占用。
当然,由推送服务器推送至目标客户端的命令信息也可以为内容消息,即该内容消息中包含发生更新的数据内容,在这种情况下,目标客户端在接收到推送服务器推送的内容消息后,从该内容消息中提取发生更新的数据内容,依照提取的数据内容进行本地数据内容的同步。通过传送内容消息可以直接将内容消息推送至客户端,信息传递快速,步骤简单。
为了实现对多语言的支持、方便地调用文本,推送服务器和云存储服务器端之间采用HTTP接口,也可以是其他合适的接口,本发明对此不做限制。
综上所述,本发明提供的这种套接字服务器及套接字服务方法,通过设置单独的推送服务器,在云存储服务器端存储的浏览器相关内容发生更新的情况下,能够及时地将命令信息通过该推送服务器发送至多个浏览器客户端中的目标客户端,解决了无法简单有效地将浏览器客户端与云存储服务器端数据实时同步的问题,从而简单、高效地实现了浏览器客户端与云存储服务器端的数据同步。由此,可以在原有架构的基础上使浏览器客户端可以高效地、主动地、资源节约地将信息与云存储服务器端实时同步。该系统及方法还能够在原有系统架构的基础上实现,有效利用原有架构,实现成本有效。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解, 本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的相关设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实 现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (12)

1.一种套接字服务器,用于将来自推送服务器的命令信息发送给多个浏览器客户端中的目标客户端,所述套接字服务器包括连接模块,该连接模块用于与所述浏览器客户端建立套接字连接,其中,当所述浏览器客户端发起与所述套接字服务器的连接时,所述连接模块接受该连接,并获得该连接的资源标识符;
其中,所述连接模块还用于经由所述连接接收从所述浏览器客户端发送的连接标识符;所述套接字服务器还包括验证模块,所述验证模块用于:当接收从所述浏览器客户端发送的连接标识符时,查询分发信息数据库以验证该连接标识符是否存在于该分发信息数据库中,当所述连接标识符不存在于该分发信息数据库时,指示所述连接模块断开所述连接;其中,分发器在接收到浏览器客户端的连接请求后,为其分配相应的套接字服务器以及连接标识符,并将用户标识信息以及连接标识符存储至分发信息数据库。
2.如权利要求1所述的套接字服务器,其中,所述验证模块还用于:
当所述连接标识符存在于该分发信息数据库时,将所述资源标识符存入所述分发信息数据库。
3.如权利要求1所述的套接字服务器,其中,还包括一个查询模块,当所述推送服务器将条件信息和命令信息发送给为目标客户端分配的套接字服务器时,所述查询模块根据所述条件信息查询分发信息数据库以确定目标客户端。
4.如权利要求3所述的套接字服务器,其中,该连接模块根据条件信息在分发信息数据库中查询资源标识符来确定目标客户端。
5.如权利要求1所述的套接字服务器,其中,当所述套接字服务器接收到了命令信息并已根据条件信息确定了目标客户端,并且目标客户端不止一个时,所述连接模块对其中一个客户端发送命令消息之后,不等待其接收确认就直接向下一个客户端发送命令消息。
6.如权利要求1所述的套接字服务器,其中,所述连接模块采用传输控制协议与所述浏览器客户端进行连接和命令信息的发送。
7.一种套接字服务方法,应用于套接字服务器中,该套接字服务器用于与浏览器客户端建立套接字连接,将来自推送服务器的命令信息发送给多个浏览器客户端中的目标客户端,其中,该方法包括:
当所述浏览器客户端发起与所述套接字服务器的连接时,接受该连接,并获得该连接的资源标识符;经由所述连接接收从所述浏览器客户端发送的连接标识符;
当接收从所述浏览器客户端发送的连接标识符时,查询分发信息数据库以验证该连接标识符是否存在于该分发信息数据库中,当所述连接标识符不存在于该分发信息数据库时,指示所述连接模块断开所述连接;
其中,分发器在接收到浏览器客户端的连接请求后,为其分配相应的套接字服务器以及连接标识符,并将用户标识信息以及连接标识符存储至分发信息数据库。
8.如权利要求7所述的套接字服务方法,其中,该方法还包括:当所述连接标识符存在于该分发信息数据库时,将所述资源标识符存入所述分发信息数据库。
9.如权利要求7所述的套接字服务方法,其中,该方法还包括:当所述推送服务器将条件信息和命令信息发送给为目标客户端分配的套接字服务器时,根据所述条件信息查询所述分发信息数据库以确定目标客户端。
10.如权利要求9所述的套接字服务方法,其中,所述根据所述条件信息查询所述分发信息数据库以确定目标客户端包括:根据条件信息在分发信息数据库中查询资源标识符来确定目标客户端。
11.如权利要求7所述的套接字服务方法,其中,该方法还包括:当接收到了命令信息并已根据条件信息确定了目标客户端,并且目标客户端不止一个时,对其中一个客户端发送命令消息之后,不等待其接收确认就直接向下一个客户端发送命令消息。
12.如权利要求7所述的套接字服务方法,其中,采用传输控制协议与所述浏览器客户端进行连接和命令信息的发送。
CN201210548938.8A 2012-12-17 2012-12-17 套接字服务器及套接字服务方法 Active CN103036989B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210548938.8A CN103036989B (zh) 2012-12-17 2012-12-17 套接字服务器及套接字服务方法
PCT/CN2013/083624 WO2014094468A1 (zh) 2012-12-17 2013-09-17 实现浏览器数据同步的系统、方法及浏览器客户端
US14/652,844 US10187445B2 (en) 2012-12-17 2013-09-17 System, method and browser client for enabling browser data synchronization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210548938.8A CN103036989B (zh) 2012-12-17 2012-12-17 套接字服务器及套接字服务方法

Publications (2)

Publication Number Publication Date
CN103036989A CN103036989A (zh) 2013-04-10
CN103036989B true CN103036989B (zh) 2016-11-09

Family

ID=48023461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210548938.8A Active CN103036989B (zh) 2012-12-17 2012-12-17 套接字服务器及套接字服务方法

Country Status (1)

Country Link
CN (1) CN103036989B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014094468A1 (zh) * 2012-12-17 2014-06-26 北京奇虎科技有限公司 实现浏览器数据同步的系统、方法及浏览器客户端
CN103747088B (zh) * 2014-01-13 2017-09-26 中广核(北京)仿真技术有限公司 一种用于全范围模拟机传输数据的方法及数据传输系统
CN114531498B (zh) * 2021-12-22 2024-01-09 杭州博盾习言科技有限公司 数据传输方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1620012A (zh) * 2003-11-19 2005-05-25 国际商业机器公司 更新/重装在网络上浏览过的页面内容的方法和系统
CN102006322A (zh) * 2010-11-18 2011-04-06 广州广联数字家庭产业技术研究院 基于互联网实现远程抄表的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7889869B2 (en) * 2004-08-20 2011-02-15 Nokia Corporation Methods and apparatus to integrate mobile communications device management with web browsing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1620012A (zh) * 2003-11-19 2005-05-25 国际商业机器公司 更新/重装在网络上浏览过的页面内容的方法和系统
CN102006322A (zh) * 2010-11-18 2011-04-06 广州广联数字家庭产业技术研究院 基于互联网实现远程抄表的方法及系统

Also Published As

Publication number Publication date
CN103036989A (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
CN102984278B (zh) 实现浏览器数据同步的系统和方法
CN103024052B (zh) 实现浏览器数据同步的系统和方法
CN101127947B (zh) 一种基于移动终端登录聊天室的方法、系统及设备
CN103024050B (zh) 分发器和对多个服务器进行分发的方法
US9774582B2 (en) Private cloud connected device cluster architecture
US20150334182A1 (en) System, Method and Browser Client for Enabling Browser Data Synchronization
US20110276961A1 (en) Method and Device for Installing Applications on NFC-Enabled Devices
CN102075539B (zh) 数据推送系统及方法
CN102984277B (zh) 防止恶意连接的系统和方法
CN103024049B (zh) 实现浏览器数据同步的系统
WO2011082995A1 (en) Automatically synchronizing new contacts across multiple social networking sites
CN103036989B (zh) 套接字服务器及套接字服务方法
CN102185701A (zh) 一种实现群组信息交互的方法及系统
CN103024051B (zh) 一种进行服务器分发的装置、方法和相应系统
CN102984276B (zh) 用于对多个套接字服务器进行分发的分发器和分发方法
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
KR101857020B1 (ko) 서버에서 제공되는 서비스를 관리하기 위한 단말기의 장치 및 방법
US10051053B2 (en) System and method for transferring and synchronizing content between electronic devices
CN103621047A (zh) 用于跨网络同步内容的方法
CN103064899B (zh) 一种分发信息数据库系统
CN102685724B (zh) 一种内容定制方法、服务器及系统
CN111611308A (zh) 信息处理方法、装置及系统
CN112836201A (zh) 多平台信息互通的方法、装置、设备和计算机可读介质
CN103036990B (zh) 一种浏览器客户端
CN112804291B (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

Effective date of registration: 20220727

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.

TR01 Transfer of patent right