发明内容
有鉴于此,本发明实施例提供一种建立连接的方法、装置及***,能够解决服务器任务下发不及时的问题。
依据本发明一个方面,提供了一种建立连接的方法,包括:
与服务器建立并保持长连接;
基于长连接接收服务器下发的任务指令,任务指令中包含任务通知消息;
对任务通知消息进行解析,获得任务的属性信息;
与服务器建立短连接,并基于短连接向服务器上报属性信息,以便获得服务器下发的任务。
根据本发明的另一个方面,提供了一种建立连接的装置,包括:
第一建立单元,用于与服务器建立并保持长连接;
接收单元,用于基于第一建立单元建立并保持的长连接接收服务器下发的任务指令,任务指令中包含任务通知消息;
解析单元,用于对接收单元接收的任务通知消息进行解析,获得任务的属性信息;
第二建立单元,用于在解析单元获得任务的属性信息后,与服务器建立短连接;
上报单元,用于基于第二建立单元建立的短连接向服务器上报解析单元获得的属性信息,以便获得服务器下发的任务。
根据本发明的另一个方面,提供了一种建立连接的***,包括:
终端以及服务器,其中,终端包含如上所述的装置;
服务器,用于:
与终端建立并保持长连接;
基于长连接向终端下发任务指令,任务指令中包含任务通知消息;
与终端建立短连接,基于短连接接收终端上报的属性信息,根据属性信息查找任务并下发给终端;
其中,属性信息为终端通过解析任务通知消息得到。
借由上述技术方案,本发明提供的建立连接的方法、装置及***,能够在终端与服务器之间建立短连接的基础上,进一步建立并保持长连接,当服务器需要向终端下发任务时,可以通过保持的长连接将任务指令下发给终端,在接收到服务器下发的任务指令后,终端可以与服务器建立短连接,并通过建立的短连接将解析该任务指令得到的任务的属性信息上报给服务器,服务器根据该属性信息查找任务并下发给终端。本发明中,由于终端与服务器之间一直保持着长连接,因此,服务器可以随时对各种任务进行主动下发,与现有技术相比,本发明能够及时、主动的将各种任务下发给终端,不存在任务下发延迟。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种建立连接的方法,如图1所示,该方法包括:
101、与服务器建立并保持长连接。
当终端与服务器建立连接时,终端与服务器建立长连接,终端需要向服务器发送连接的请求包,等待服务器确认;当服务器接收到终端发送的请求包并确认该请求数据包后,将该请求数据包和服务器自身的数据包发送给终端;当终端接收到服务器发送的数据包并确认服务器发送的数据包,同时向服务器发送确认数据包,由此终端和服务器便完成了长连接的建立。终端和服务器建立长连接后,便可以连续向对端发送数据包,且终端和服务器会一直保持长连接。通过采用终端与服务器建立并保持长连接,以便服务器可以及时向终端主动下发数据包。
102、基于长连接接收服务器下发的任务指令,任务指令中包含任务通知消息。
本步骤中的任务指令由服务器生成,并及时下发给终端,终端根据该任务指令中的通知消息响应该任务指令。当服务器向终端下发任务指令时,通过步骤101中终端与服务器建立的长连接及时向终端下发任务指令,该任务指令中包含任务通知消息,通过该任务通知消息告知终端此次的任务内容。若服务器向终端下发任务指令为多个时,可以采用先向终端发送其中一个任务指令,等终端响应完该任务指令后,再次向终端下发其他的任务指令;或者采用将服务器端的多个任务指令全部发送给终端,终端根据自身的需求选择首先响应哪个任务指令。具体的关于服务器向终端下发任务指令的方式本发明实施例对此不进行限制。
其中,关于任务通知消息本发明实施例可以包含但不局限于以下内容,例如,该任务通知消息为补丁修复,也可以为***或者应用程序升级等等,具体的本发明实施例对此不进行限制。
103、对任务通知消息进行解析,获得任务的属性信息。
终端接收步骤102中服务器下发的任务通知消息,该任务通知消息中记录了服务器下发任务指令的属性信息,终端需要通过对该任务通知消息进行解析,获取该任务的属性信息。其中该属性信息至少包括:身份标识ID、命令、时间、包长、类型、校验位字等等,具体的本发明实施例不进行限制。
其中,在解析任务通知消息时可以包括但不局限于以下的方式实现:对该任务通知消息中的内容逐一进行解析,获得所有该任务的属性信息;或者,只解析执行该任务通知消息所必须的内容,例如,根据经验查找执行该任务通知消息所必须获取的内容,将查找到的内容字段进行解析,并获取该任务内容字段的属性信息,其中上述执行该任务通知消息所必须的内容,由建立连接的终端和服务器协商决定;或者,遍历该任务通知消息,选择部分执行该任务通知消息所必须获取的内容进行解析,并获取该任务的部分属性信息等等。关于对任务通知消息的解析过程,本发明实施例对此不进行限制。
104、与服务器建立短连接,并基于短连接向服务器上报属性信息,以便获得服务器下发的任务。
终端与服务器建立短连接的过程,请参阅上述步骤101中终端和服务器建立长连接的过程,具体的关于终端和服务器建立短连接的过程本发明实施例对此不进行赘述,终端和服务器建立短连接,并且服务器在响应终端请求之后,终端或者服务器会中断此次终端与服务器的连接。
在获取任务的属性信息后,终端和服务器建立短连接,由于在步骤101中该终端与服务器建立并保持长连接,于本步骤中,为了降低网络资源的占用量,同时服务器下发的任务指令通常情况下为一次性有效的,终端与服务器建立短连接;基于该短连接向服务器上报步骤103中解析得到的属性信息,服务器根据该属性信息查找并下发任务给终端,由此完成一次服务器及时向终端下发任务。
本发明提供的建立连接的方法,能够在终端与服务器之间建立短连接的基础上,进一步建立并保持长连接,当服务器需要向终端下发任务时,可以通过保持的长连接将任务指令下发给终端,在接收到服务器下发的任务指令后,终端可以与服务器建立短连接,并通过建立的短连接将解析该任务指令得到的任务的属性信息上报给服务器,服务器根据该属性信息查找任务并下发给终端。本发明实施例中,由于终端与服务器之间一直保持着长连接,因此,服务器可以随时对各种任务进行主动下发,与现有技术相比,本发明实施例能够及时、主动的将各种任务下发给终端,不存在任务下发延迟。
进一步的,在本发明的另一实施例中,在执行上述步骤101与服务器建立并保持长连接时,还可以采用下述方式:终端在首次通过短连接向服务器请求数据时,终端和服务器不会中断此次终端与服务器的连接,而是在服务器响应终端的请求数据后,终端再次向该服务器发送建立长连接的请求,与服务器建立并保持长连接。
进一步的,作为对上述实施例的细化和扩展,上述步骤102中任务指令中包含任务通知消息可以以格式化报文的形式呈现,终端根据格式化报文中的内容,解析任务通知消息,以便获取任务的属性信息。
在实施过程中,格式化报文除内容字段外,还可以包括:身份标识ID字段、命令字段、时间字段、包长字段、类型字段、校验位字段;其中,不同的任务对应不同的身份标识ID字段,ID字段由服务器自行设定,例如,当服务器下发补丁修复的第一个任务时,可设置该ID字段为XF001,当服务器下发补丁修复的第二个任务时,可设置该ID字段为XF002,当服务器下发升级的第一个任务时,可设置该ID字段为SJ001,当服务器下发升级的第二个任务时,可设置该ID字段为SJ002等等,上述ID字段的设置方式仅为示例性的举例,具体的本发明实施例对此不进行限制。
示例性的,命令字段为服务端指示终端需要执行的命令,例如,卸载、升级,补丁修复等等;时间字段可以包括但不局限于以下的内容,例如时间字段中记录了服务器下发任务指令的时间,或者该任务指令的生成时间,还可以是服务器要求终端在哪个时间或者时间段内执行该任务指令的时间,具体的本发明实施例不进行限制;包长字段记录了该任务指令的大小,例如,包长为10K、8K等等,本发明实施例对该任务指令的大小不作具体的限定;类型字段为针对哪种类型的操作,例如,升级,补丁修复,更新卸载等等,在实际操作中根据实际情况进行设定,具体的本发明实施例对此不进行限定;校验位字段为根据内容字段、身份标识ID字段、命令字段、时间字段、包长字段、类型字段等等计算出来的,根据上述字段的不同而不同。
可选的,本发明实施例在终端与服务器建立长连接时,采用基于私有协议的TCP长连接,该种连接方式没有特殊的统一规范,且易于维护;当然,实际应用中还可以采用基于公有协议的TCP长连接,具体的长连接方式本发明实施例对此不进行限制。
可选的,在终端与服务器进行建立短连接时,可以采用但不局限于以下的方式实现,例如,终端与服务器通过HTTP短连接建立连接,也可以通过TCP短连接建立终端与服务器间的连接。本发明实施例对具体的短连接的类型不进行限制。
上述示例是以终端和服务器建立一条长连接为例进行的说明,同理,对于一台服务器与多台终端建立并保长连接来说,可以在向终端下发任务时将格式化报文中的身份标识ID字段按照不同的终端进行设置,例如,当一台服务器与终端1、终端2、终端3…进行建立并保持长连接,向上述终端下发任务指令时,可以采用如下方式:当服务器向终端1下发补丁修复的第一个任务时,可设置该ID字段为001XF001,当服务器向终端2下发补丁修复的第一个任务时,可设置该ID字段为002XF001,当服务器向终端3下发补丁修复的第一个任务时,可设置该ID字段为003XF001;当服务器向终端1下发补丁修复的第二个任务时,可设置该ID字段为001XF002,当服务器向终端2下发补丁修复的第二个任务时,可设置该ID字段为002XF002,当服务器向终端3下发补丁修复的第二个任务时,可设置该ID字段为003XF002;当服务器向终端1下发升级的第一个任务时,可设置该ID字段为001SJ001,当服务器向终端2下发升级的第一个任务时,可设置该ID字段为002SJ001,当服务器向终端3下发升级的第一个任务时,可设置该ID字段为003SJ001;当服务器向终端1下发升级的第二个任务时,可设置该ID字段为001SJ002,当服务器向终端2下发升级的第二个任务时,可设置该ID字段为002SJ002,当服务器向终端3下发升级的第二个任务时,可设置该ID字段为003SJ002等等。上述ID字段的设置方式仅为示例性的举例,具体的本发明实施例对此不进行限制。
一台服务器向多台终端下发任务指令,接收该任务指令的多台终端对该任务指令进行解析,其中有关终端对接收到的任务指令的解析以及与服务器建立短连接,并基于短连接向服务器上报属性信息的过程,请参阅上述步骤103、与步骤104的具体描述,本发明实施例对此不进行赘述。
基于上述方法实施例,本发明实施例还提供一种建立连接的装置,如图2所示,该装置包括:
第一建立单元21,用于与服务器建立并保持长连接,当终端与服务器建立连接时,终端与服务器建立长连接,终端需要向服务器发送连接的请求包,等待服务器确认;当服务器接收到终端发送的请求包并确认该请求数据包后,将该请求数据包和服务器自身的数据包发送给终端;当终端接收到服务器发送的数据包并确认服务器发送的数据包,同时向服务器发送确认数据包,由此终端和服务器便完成了长连接的建立。终端和服务器建立长连接后,便可以连续向对端发送数据包,且终端和服务器会一直保持长连接。通过采用终端与服务器建立并保持长连接,以便服务器可以及时向终端主动下发数据包;
接收单元22,用于基于第一建立单元21建立并保持的长连接接收服务器下发的任务指令,任务指令中包含任务通知消息,该任务指令由服务器生成,并及时下发给终端,终端根据该任务指令中的通知消息响应该任务指令。当服务器向终端下发任务指令时,通过终端与服务器建立的长连接及时向终端下发任务指令,该任务指令中包含任务通知消息,通过该任务通知消息告知终端此次的任务内容;
解析单元23,用于对接收单元22接收的任务通知消息进行解析,获得任务的属性信息,终端接收服务器下发的任务通知消息,该任务通知消息中记录了服务器下发任务指令的属性信息,终端需要通过对该任务通知消息进行解析,获取该任务的属性信息。其中该属性信息至少包括:身份标识ID、命令、时间、包长、类型、校验位字等等,具体的本发明实施例不进行限制;
第二建立单元24,用于在解析单元23获得任务的属性信息后,与服务器建立短连接,在获取任务的属性信息后,终端和服务器建立短连接,由于在第一建立单元21中该终端与服务器建立并保持长连接,为了降低网络资源的占用量,同时服务器下发的任务指令通常情况下为一次性有效的,终端与服务器建立短连接;
上报单元25,用于基于第二建立单元24建立的短连接向服务器上报解析单元23获得的属性信息,以便获得服务器下发的任务,基于第二建立单元24建立的短连接向服务器上报解析单元23解析得到的属性信息,服务器根据该属性信息查找并下发任务给终端,由此完成一次服务器及时向终端下发任务。
进一步的,该第一建立单元21用于在首次通过短连接向服务器请求数据时,建立并保持长连接。
进一步的,该接收单元22接收的任务指令中包含的任务通知消息为格式化报文。
进一步的,该解析单元23,用于对格式化报文的内容字段进行读取,获得任务的地址信息。
进一步的,该接收单元22接收的格式化报文还包括如下字段:身份标识ID字段、命令字段、时间字段、包长字段、类型字段、校验位字段。
进一步的,该第一建立单元21建立并保持的长连接为传输控制协议TCP长连接,该第二建立单元24建立的短连接为超文本传输协议HTTP短连接。
进一步的,本发明实施例还提供一种建立连接的***,如图3所示,该***包括:终端31以及服务器32,其中,该终端31为如上述图2所示的装置;
服务器32,用于:
与终端31建立并保持长连接;
基于长连接向终端31下发任务指令,任务指令中包含任务通知消息;
与终端31建立短连接,基于短连接接收终端31上报的属性信息,根据属性信息查找任务并下发给终端31;
其中,属性信息为终端31通过解析任务通知消息得到。
本发明提供的建立连接的装置及***,能够在终端与服务器之间建立短连接的基础上,进一步建立并保持长连接,当服务器需要向终端下发任务时,可以通过保持的长连接将任务指令下发给终端,在接收到服务器下发的任务指令后,终端可以与服务器建立短连接,并通过建立的短连接将解析该任务指令得到的任务的属性信息上报给服务器,服务器根据该属性信息查找任务并下发给终端。本发明实施例中,由于终端与服务器之间一直保持着长连接,因此,服务器可以随时对各种任务进行主动下发,与现有技术相比,本发明实施例能够及时、主动的将各种任务下发给终端,不存在任务下发延迟。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的建立连接的方法、装置及***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。