一种信息推送方法、装置、系统及电子设备与流程

文档序号:15684144发布日期:2018-10-16 20:52阅读:148来源:国知局

本申请涉及互联网通讯技术领域,特别涉及一种信息推送方法、装置及系统。



背景技术:

在互联网通讯技术中,客户端与服务器之间常使用的通讯技术为轮询、长轮询、flashsocket等。这些技术各有千秋。其中,信息在客户端与服务器之间采用html推送技术时,基本使用的轮询技术。客户端定时向服务器发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。在这种情况下,我们需要不断的向服务器发送请求,然而httprequest的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源。会占用大量的带宽和服务器资源。

基于上述描述可知,该通讯方案没有真正实现即时通讯,并且通讯的带宽利用率不高。研发人员又提出一种socket通讯方案,该方案的应用程序通常采用"套接字"向服务器发出请求或者应答网络请求,实现服务器与客户端之间的物理连接,并进行数据传输。但是,该技术方案需要对传输的数据进行解析,转化为应用级的数据,通讯系统的资源利用率不高。并且,相对于http协议传输,增加了开发量。最为重要的,这些通讯方案均不适于移动终端数据通信。



技术实现要素:

本申请实施方式的目的是提供一种信息推送方法、装置及系统,适于移动终端实现实时数据推送及web网页中即时通讯,解决了现有技术中信息推送时资源利用率不高的技术问题。

为实现上述目的,本申请实施方式提供一种信息推送方法,包括:

在与服务器之间的正常的会话链路上接收从所述服务器发送过来的信息;其中,所述会话链路为发起通讯连接请求时与所述服务器之间建立的;

向所述服务器发送信息接收状态。

优选地,所述会话链路建立的步骤包括:

从所述服务器上获取加密公钥;

利用所述公钥对登录信息进行加密,获得通讯连接请求;

将所述通讯连接请求发送至服务器进行认证;

在认证通过后,从所述服务器获得服务器连接地址和端口;

根据所述服务器连接地址和端口与服务器建立会话链路,并将客户端的连接地址和端口发送至服务器。

优选地,还包括:

定时判断所述会话链路是否正常。

优选地,还包括:

如果所述会话链路不正常,则根据所述服务器连接地址和端口与服务器重新建立会话链路。

为实现上述目的,本申请实施方式还提供一种信息推送方法,包括:

接收客户端发送过来的通讯连接请求;

对所述通讯连接请求进行认证;

利用私钥对认证通过的通讯连接请求进行解密,获得登录信息,根据所述登录信息向对应地客户端发送服务器连接地址和端口,建立会话链路;

将信息通过所述会话链路发送至客户端。

为实现上述目的,本申请实施方式还提供一种信息推送装置,包括:

接收单元,用于在与服务器之间的正常的会话链路上接收从所述服务器发送过来的信息;其中,所述会话链路为发起通讯连接请求时与所述服务器之间建立的;

返回状态信息单元,用于向所述服务器发送信息接收状态。

优选地,所述装置还包括:会话链路建立单元;所述会话链路建立单元包括:

公钥获取模块,用于从所述服务器上获取加密公钥;

通讯连接请求生成模块,用于利用所述公钥对登录信息进行加密,获得通讯连接请求;

发送模块,用于发送将所述通讯连接请求发送至服务器进行认证;

服务器连接地址信息获取模块,用于在认证通过后,从所述服务器获得服务器连接地址和端口;

通讯建立模块,用于根据所述服务器连接地址和端口与服务器建立会话链路,并将客户端的连接地址和端口发送至服务器。

优选地,所述装置还包括:

判断单元,用于定时判断所述会话链路是否正常。

优选地,所述会话链路建立单元还用于如果所述会话链路不正常,则根据所述服务器连接地址和端口与服务器重新建立会话链路。

为实现上述目的,本申请实施方式还提供一种信息推送装置,包括:

接收单元,用于接收客户端发送过来的通讯连接请求;

认证单元,用于对所述通讯连接请求进行认证;

解密单元,用于利用私钥对认证通过的通讯连接请求进行解密,获得登录信息;

通讯建立单元,用于根据所述登录信息向对应地客户端发送服务器连接地址和端口,建立会话链路;

发送单元,用于将信息通过所述会话链路发送至客户端。

由上可见,与现有技术相比较,本技术方案需要客户端主动发送请求建立与服务器之间的会话链路,在该会话链路上基于服务器主动针对客户端进行实时信息推送,有效提高消息响应速度,同时减少客户端轮询所耗电量。并且服务器不需要每次传输信息时都带上重复的头部数据,所以它的数据传输量比轮询等技术小许多,传输效率高。

附图说明

为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提出的一种信息推送系统示意图;

图2为本申请实施例提出的一种信息推送方法流程图之一;

图3为本申请实施例提出的一种信息推送方法流程图之二;

图4为本申请实施例应用于移动终端的雨露百事通app上的显示状态示意图之一;

图5为本申请实施例应用于移动终端的雨露百事通app上的显示状态示意图之二;

图6为本申请实施例提供的一种信息推送装置功能框图之一;

图7为本申请实施例提供的一种信息推送装置功能框图之二;

图8为本申请实施例提供的一种信息推送装置功能框图之三;

图9为本申请实施例提出的一种电子设备示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。

服务器将信息发送至客户端基本采用html推送技术,客户端定时向服务器发送ajax请求,服务器接到请求后马上返回响应信息并关闭通讯连接。这种技术在特定的时间间隔有浏览器自动发出请求,将服务器的消息主动的拉回来,在这种情况下,我们需要不断的向服务器发送请求,然而httprequest的header是非常长的,里面包含的数据可能只是一个很小的值,这样占用很多的带宽和服务器资源,会占用大量的带宽和服务器资源。

基于此,本发明提出一种信息推送系统,如图1所示。该系统包括:客户端和服务器。客户端主动发送请求建立与服务器之间的会话链路,在该会话链路上基于服务器主动针对客户端进行实时信息推送。在通讯过程中,客户端定期侦听该会话链路,如果会话链路出现异常,客户端再根据之前服务器连接地址和端口与服务器重新建立会话链路。也就是说,首次建立连接时,客户端主动发起通讯请求,建立客户端与服务器之间的通讯链接,在此基础上,服务器在该通讯链接上主动推送信息至客户端。无需每次传输信息时如现有技术那样都带上重复的头部数据,数据传输量大大降低,如果通讯链路出现异常,导致服务器端发送的数据无法接受,客户端再依据之前建立通讯链路时使用的服务器连接地址和端口与服务器重新建立通讯。从而可以看出,本技术方案中服务器的连接地址是固定不变的,客户端的连接地址可以发生变化。综上,由上述描述可知,本技术方案可以在移动终端上的app实现实时数据推送及web网页中即时通讯,并提供一种浏览器与服务器之间进行全双工通讯的网络技术。

基于上述描述,本申请实施方式提供一种信息推送方法,其中,该信息推送方法应用于客户端中。具体地,客户端例如可以是具备通过采集用户的语音或文字输入的台式电脑、平板电脑、笔记本电脑、智能手机、智能助手siri、智能可穿戴设备、导购终端、电视机等。或者,所述客户端也可以为能够运行于上述电子设备中的软件。具体的,所述客户端可以为电子设备中的浏览器,所述浏览器中可以为应用程序网站服务平台提供的访问入口。所述访问入口可以是上述网站服务平台的搜索输入栏。所述客户端还可以是网站服务平台提供的在智能终端中运行的应用。如图2所示,该信息推送方法的步骤包括:

步骤201):在与服务器之间的正常的会话链路上接收从所述服务器发送过来的信息;其中,所述会话链路为发起通讯连接请求时与所述服务器之间建立的。

在本技术方案中,在接收服务器发送过来的信息之前,客户端需主动发送通讯连接请求,建立客户端与服务器之间的会话链路。会话链路建立过程为:从所述服务器上获取加密公钥。在本实施例中,公钥和对应的私钥均由服务器产生。客户端通过调用服务器加密接口getrsapublickey方法,从服务器上获得加密公钥。然后,利用所述公钥对登录信息进行加密,获得通讯连接请求。在本实施例中,客户端利用公钥调用rsaencrypt方法将用户名登录密码以及当前时间戳进行加密,产生通讯连接请求,将通讯连接请求发送至服务器进行认证,在认证通过后,从所述服务器获得服务器连接地址和端口,根据所述服务器连接地址和端口与服务器建立会话链路,并将客户端的连接地址和端口发送至服务器。在本实施例中,只有获得认证通过,服务器才能进行推送消息。客户端调用opensocket,利用服务器连接地址和端口创建远程服务端会话链路,并将客户端的连接地址和端口发送至服务器。

在实际应用中,一旦建立会话链路,服务器会依此会话链路将最新信息发送至客户端,有可能客户端的通讯地址发生变化。比如:移动终端由一个无线网络环境进入另一新的无线网络环境,此时移动终端的ip地址会发生变更,原会话链路基于上一无线网络环境下移动终端的ip地址与服务器建立的,一旦移动终端的ip地址发生变化,会话链路就出现异常,客户端需要定期判断该会话链路是否正常,如果会话链路出现异常现象,导致客户端无法获取服务器发送过来的数据,这时客户端需要根据所述服务器连接地址和端口与服务器重新建立会话链路。

步骤202):向所述服务器发送信息接收状态。

在本实施例中,客户端接收到服务器推送过来的信息后,客户端要将信息接收状态发送至服务器。

本申请实施方式还提供另一种信息推送方法,该信息推送方法应用于服务器中。具体地,所述服务器可以是能够提供最新业务数据信息的后台业务服务器。在本实施方式中,所述服务器可以为一个具有数据运算、存储功能以及网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件。在本实施方式中并不具体限定所述服务器的数量。所述服务器可以为一个服务器,还可以为几个服务器,或者,若干服务器形成的服务器集群。如图3所示,该信息推送方法包括:

步骤301):接收客户端发送过来的通讯连接请求。

在本实施例,服务器生成配对的公钥和私钥,服务器将公钥发送至客户端,客户端将登陆信息以公钥加密的方式获得数据组包,将该数据组包作为通讯连接请求发送至服务器。

步骤302):对所述通讯连接请求进行认证。

在本实施例中,服务器对通讯连接请求利用与公钥配对的私钥进行解密,获得登录信息。调用服务器端口getremoteaddr,对登录信息进行认证。

步骤303):利用私钥对认证通过的通讯连接请求进行解密,获得登录信息。

在本实施例中,服务器利用私钥对认证通过的通讯连接请求进行解密,获得登录信息,根据所述登录信息向对应地客户端发送服务器连接地址和端口,创建pushserver,调用start,启动推送服务,等待客户端连接。

步骤304):根据所述登录信息向对应地客户端发送服务器连接地址和端口,建立会话链路。

在实际应用中,客户端调用opensocket,打开远端服务器连接地址,创建远程服务器会话链接。对应地,服务器接收客户端会话,获得客户端的连接地址和端口,服务器调用writeredis,保存客户端的连接地址和端口。创建异步线程serverthread,与客户端建立通讯。

步骤305):将信息通过所述会话链路发送至客户端。

在本实施例中,服务器上有最新的信息时,调用sendallmsg,获得所有目标客户端的通讯地址和端口,并循环调用sendmsg,将服务器上的最新信息循环推送给建立会话链接的客户端。

如图4所示,以移动终端上的雨露百事通app为例,在雨露百事通中扶贫资讯增加了获取最新消息数量状态。首先,客户端获取公钥,将登陆信息以公钥加密之后以通讯链接请求的方式发送至服务器,服务器利用私钥解密后,将服务器远端通讯地址发送至客户端,客户端通过服务器远端通讯地址与服务器建立会话链接,并将雨露百事通app所在的移动终端的通讯地址发送给服务器,服务器保存至redis中,会话链路一直正常的状态下,服务器将最新信息循环推送给建立会话链接的雨露百事通app上,雨露百事通app上的扶贫资讯上实时显示最新信息数量状态,如图5所示。

本技术方案有效的降低客户端应用程序电源消耗,同时采用该技术方案进行推送,有效的降低网络带宽、减少长连接的数量、节省内存、cpu等系统资源的要求,降低系统运营成本。

如图6所示,为本申请实施例提供的一种信息推送装置功能框图之一。该装置的功能属于客户端。包括:

接收单元601,用于在与服务器之间的正常的会话链路上接收从所述服务器发送过来的信息;其中,所述会话链路为发起通讯连接请求时与所述服务器之间建立的;

返回状态信息单元602,用于向所述服务器发送信息接收状态。

如图7所示,为本申请实施例提供的一种信息推送装置功能框图之二。该装置的功能属于客户端。在图6的基础上,所述装置还包括:会话链路建立单元600;所述会话链路建立单元600包括:

公钥获取模块6001,用于从所述服务器上获取加密公钥;

通讯连接请求生成模块6002,用于利用所述公钥对登录信息进行加密,获得通讯连接请求;

发送模块6003,用于发送将所述通讯连接请求发送至服务器进行认证;

服务器连接地址信息获取模块6004,用于在认证通过后,从所述服务器获得服务器连接地址和端口;

通讯建立模块6005,用于根据所述服务器连接地址和端口与服务器建立会话链路,并将客户端的连接地址和端口发送至服务器。

在本实施例中,所述装置还包括:

判断单元,用于定时判断所述会话链路是否正常。

在本实施例中,所述会话链路建立单元还用于如果所述会话链路不正常,则根据所述服务器连接地址和端口与服务器重新建立会话链路。

如图8所示,为本申请实施例提供的一种信息推送装置的功能示意图之三。该装置的功能属于服务器。包括:

接收单元801,用于接收客户端发送过来的通讯连接请求;

认证单元802,用于对所述通讯连接请求进行认证;

解密单元803,用于利用私钥对认证通过的通讯连接请求进行解密,获得登录信息;

通讯建立单元804,用于根据所述登录信息向对应地客户端发送服务器连接地址和端口,建立会话链路;

发送单元805,用于将信息通过所述会话链路发送至客户端。

如图9所示,为本申请实施例提出的一种电子设备示意图。包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如图2、图3所示的信息推送方法。

本说明书实施方式提供的电子设备,其存储器和处理器实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。

在本实施方式中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如ram、rom等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置,如cd或dvd。当然,还有其他方式的存储器,例如量子存储器、石墨烯存储器等等。

在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。

在本实施例中,本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如图2、图3所示的信息推送方法的步骤。

由上可见,本技术方案需要客户端主动发送请求建立与服务器之间的会话链路,在该会话链路上基于服务器主动针对客户端进行实时信息推送,有效提高消息响应速度,同时减少客户端轮询所耗电量。并且服务器不需要每次传输信息时都带上重复的头部数据,所以它的数据传输量比轮询等技术小许多,传输效率高。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现客户端和服务器以外,完全可以通过将方法步骤进行逻辑编程来使得客户端和服务器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种客户端和服务器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。

本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对客户端和服务器的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1