一种基于长连接的信息处理方法和装置与流程

文档序号:12068171阅读:179来源:国知局
一种基于长连接的信息处理方法和装置与流程

本申请涉及计算机技术领域,特别是涉及一种基于长连接的信息处理方法和一种基于长连接的信息处理装置。



背景技术:

WebSocket协议是超级文本标记语言(HyperText Markup Language,HTML)第五版推荐标准中定义的一种新的协议,能更好的节省服务器资源和带宽并达到实时通讯。例如,服务器可以按照WebSocket协议,与客户端之间建立长连接,进而可以通过该长连接主动向客户端推送消息。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于长连接的信息处理方法和相应的一种基于长连接的信息处理装置,解决现有技术中服务器无法验证推送的消息是否到达客户端的问题。

为了解决上述问题,本申请实施例公开了一种基于长连接的信息处理方法,包括:

基于预先与服务器建立的长连接,获取所述服务器推送的消息;

针对所述消息,生成对应的确认消息,其中,所述确认消息包含所述消息携带的动态报文序列号;

将所述确认消息发送给所述服务器,以使所述服务器依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端。

可选地,所述针对所述消息,生成对应的确认消息,包括:

从所述消息中获取动态报文序列号,其中,所述动态报文序列号用于所述服务器确定所述消息到达指定客户端;

基于所述动态报文序列号,生成所述消息对应的确认消息。

可选地,所述从所述消息中获取动态报文序列号,包括:

按照整数类型顺序,从所述消息中获取指定整型数据,其中,所述指定整型数据包括至少四位数据;

将所述指定字符数据中的指定位置的数值,作为所述动态报文序列号。

可选地,还包括:

从所述消息中获取应答报文类型数据;

检测所述应答报文类型数据是否为服务器标识符;

当所述应答报文类型数据为服务器标识符时,执行生成所述消息对应的确认消息的步骤。

可选地,从所述消息中获取应答报文类型数据,包括:

按照字符类型顺序,从所述消息中获取指定字符数据,其中,所述指定字符数据包括至少两位数据;

将所述指定字符数据中的指定位置的数值,作为所述应答报文类型数据。

可选地,所述生成所述消息对应的确认消息的步骤,包括:

获取预置的安全数据;

采用所述安全数据和所述动态报文序列号,生成所述确认消息。

可选地,所述采用所述安全数据和所述动态报文序列号,生成所述确认消息,包括:

将所述安全数据与所述动态报文序列号进行拼接,生成所述确认消息。

可选地,所述安全数据为固定安全值;所述动态报文序列号为动态值;所述消息为所述服务器依据业务需求定向推送的消息。

本申请实施例还公开了一种基于长连接的信息处理方法,包括:

基于预先与指定客户端建立的长连接,向所述指定客户端推送消息,其中,所述消息携带动态报文序列号;

检测在预设等待时间内是否接收到所述消息对应的确认消息,其中,所述确认消息包含所述动态报文序列号;

若是,则依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端;若否,则重新向所述指定客户端推送消息。

可选地,还包括:

在推送消息时,记录所述消息对应的推送次数;

在重新向所述指定客户端推送消息之前,检测所述推送次数是否达到预设推送次数阈值;

当推送次数未达到预设推送次数阈值,执行所述重新向所述指定客户端推送消息的步骤;

当推送次数达到预设推送次数阈值,断开所述长连接。

可选地,所述检测在预设等待时间内是否接收到所述消息对应的确认消息,包括:

检测在预设等待时间内接收到的消息是否包含所述动态报文序列号;

当检测到接收到的消息包含所述动态报文序列号,将接收到的消息确定为所述消息对应的确认消息。

可选地,所述向所述指定客户端推送消息,包括:

依据业务需求获取动态报文序列号;

采用所述动态报文序列号,生成所述业务需求对应的消息;

将生成的消息定向推送给所述业务需求对应的指定客户端。

可选地,所述确认消息还包含安全数据,所述方法还包括:

从所述确认消息中获取所述安全数据;

采用所述安全数据验证所述确认消息的安全性。

可选地,采用所述安全数据验证所述确认消息的安全性,包括:

检测所述安全数据是否为预设的固定值;

若是,则确定所述确认消息为合法消息;否则,确定所述确认消息为非法消息。

可选地,所述安全数据为固定安全值,所述动态报文序列号为动态值。

本申请实施例还公开了一种基于长连接的信息处理装置,包括:

消息获取模块,用于基于预先与服务器建立的长连接,获取所述服务器推送的消息;

确认消息生成模块,用于针对所述消息,生成对应的确认消息,其中,所述确认消息包含所述消息携带的动态报文序列号;

确认消息发送模块,用于将所述确认消息发送给所述服务器,以使所述服务器依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端。

可选地,所述确认消息生成模块,包括:

报文序列号获取子模块,用于从所述消息中获取动态报文序列号,其中,所述动态报文序列号用于所述服务器确定所述消息到达指定客户端;

确认消息生成子模块,用于基于所述动态报文序列号,生成所述消息对应的确认消息。

可选地,所述报文序列号获取子模块,具体用于按照整数类型顺序,从所述消息中获取指定整型数据,其中,所述指定整型数据包括至少四位数据;以及,将所述指定字符数据中的指定位置的数值,作为所述动态报文序列号。

可选地,还包括:

报文类型数据获取模块,用于从所述消息中获取应答报文类型数据;

报文类型检测模块,用于检测所述应答报文类型数据是否为服务器标识符;

其中,所述确认消息生成模块,具体用于当所述应答报文类型数据为服务器标识符时,执行生成所述消息对应的确认消息的步骤。

可选地,报文类型数据获取模块,具体用于按照字符类型顺序,从所述消息中获取指定字符数据,其中,所述指定字符数据包括至少两位数据;以及,将所述指定字符数据中的指定位置的数值,作为所述应答报文类型数据。

可选地,所述确认消息生成模块,包括:

安全数据获取子模块,用于获取预置的安全数据;

确认消息生成子模块,具体用于采用所述安全数据和所述动态报文序列号,生成所述确认消息。

可选地,所述确认消息生成子模块,包括:

拼接单元,用于将所述安全数据与所述动态报文序列号进行拼接,生成所述确认消息。

可选地,所述安全数据为固定安全值;所述动态报文序列号为动态值;所述消息为所述服务器依据业务需求定向推送的消息。

本申请实施例还公开了一种基于长连接的信息处理装置,包括:

消息推送模块,用于基于预先与指定客户端建立的长连接,向所述指定客户端推送消息,其中,所述消息携带动态报文序列号;

确认消息检测模块,用于检测在预设等待时间内是否接收到所述消息对应的确认消息,其中,所述确认消息包含所述动态报文序列号;

消息到达确定模块,用于在预设等待时间内接收到所述消息对应的确认消息,依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端;

消息重新推送模块,用于在预设等待时间内未接收到所述消息对应的确认消息,触发所述消息推送模块重新向所述指定客户端推送消息。

可选地,还包括:

推送次数记录模块,用于在推送消息时,记录所述消息对应的推送次数;

推送次数检测模块,用于在所述消息重新推送模块触发所述消息推送模块重新向所述指定客户端推送消息之前,检测所述推送次数是否达到预设推送次数阈值;

长连接断开模块,用于当推送次数达到预设推送次数阈值,断开所述长连接;

其中,消息重新推送模块,具体用于当推送次数未达到预设推送次数阈值,触发所述消息推送模块执行所述重新向所述指定客户端推送消息的步骤。

可选地,所述确认消息检测模块,具体用于检测在预设等待时间内接收到的消息是否包含所述动态报文序列号;当检测到接收到的消息包含所述动态报文序列号,将接收到的消息确定为所述消息对应的确认消息。

可选地,所述消息推送模块,包括:

获取子模块,用于依据业务需求获取动态报文序列号;

消息生成子模块,用于采用所述动态报文序列号,生成所述业务需求对应的消息;

推送子模块,用于将生成的消息定向推送给所述业务需求对应的指定客户端。

可选地,所述确认消息还包含安全数据,所述装置还包括:

安全数据获取模块,用于从所述确认消息中获取所述安全数据;

安全性验证模块,用于采用所述安全数据验证所述确认消息的安全性。

可选地,所述安全性验证模块,具体用于检测所述安全数据是否为预设的固定值;若是,则确定所述确认消息为合法消息;否则,确定所述确认消息为非法消息。

可选地,所述安全数据为固定安全值,所述动态报文序列号为动态值。

本申请实施例包括以下优点:

本申请实施例在原有的Websocket协议中扩展了ACK机制,使得客户(Client)端在获取到服务器(Server)通过长连接推送的消息后,可以生成对应的确认消息,并将该确认消息发送给所述服务器,从而使得服务器可以依据所述确认消息中的动态报文序列号确定推送的消息到达了客户端,解决了现有技术中无法验证服务器通过长连接推送的消息是否到达客户端的问题。

附图说明

图1是本申请的一种基于长连接的信息处理方法中客户端侧实施例的步骤流程图;

图2是本申请的一种基于长连接的信息处理方法中服务器侧实施例的步骤流程图;

图3是本申请的一种基于长连接的信息处理方法中服务器与客户端之间的交互步骤流程;

图4是本申请的一种基于长连接的信息处理装置实施例的结构框图;

图5是本申请的另一种基于长连接的信息处理装置实施例的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

需要说明的是,传统的Websocket协议没有确认字符(Acknowledgement,ACK)机制。因此,在现有技术中无法验证服务器通过长连接推送的消息是否到达客户端。

本申请实施例的核心构思之一在于,在原有的Websocket协议中扩展了ACK机制,使得客户(Client)端在获取到服务器(Server)通过长连接推送的消息后,可以生成对应的确认消息,并将该确认消息发送给所述服务器,从而使得服务器可以依据所述确认消息中的动态报文序列号确定推送的消息到达了客户端,解决了现有技术中无法验证服务器通过长连接推送的消息是否到达客户端的问题。

参照图1,示出了本申请的一种基于长连接的信息处理方法中客户端侧实施例的步骤流程图,具体可以包括如下步骤:

步骤102,基于预先与服务器建立的长连接,获取所述服务器推送的消息。

具体的,客户端可以预先建立与服务器之间的长连接,从而可以通过该长连接接收到服务器推送的消息,即可以获取到服务器推送的消息。其中,服务器推送的消息可以携带有动态报文序列号。该动态报文序列号可以是一个动态值,即可以是一个动态变化的数据。服务器每次在推送消息时,分配给推送的消息的报文序列号的值可以是不同。例如,服务器在给客户端推送消息时,可以在推送的消息头添加的一个随机的序列号,以将添加的序列号作为该消息的动态报文序列号。

步骤104,针对所述消息,生成对应的确认消息,其中,所述确认消息包含所述消息携带的动态报文序列号。

客户端在获取到服务器推送的消息后,可以从该消息中获取其所携带的动态报文序列号;并且可以将获取到的动态报文序列号作为确认消息的内容,生成该消息对应的确认消息。

步骤106,将所述确认消息发送给所述服务器,以使所述服务器依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端。

客户端在生成确认消息后,可以将该确认消息反馈给服务器,使得服务器可以接收到该确认消息,进而可以使得服务器依据该确认消息中的动态报文序列号确定其所推送的消息到达指定客户端。其中,指定客户端可以包括服务器将消息定向推送给的客户端。

通过本申请实施例,客户端可以采用服务器推送消息中的动态报文序列号生成对应的确认消息,并可以将该确认消息反馈给服务器,使得服务器可以依据该确认消息中包含的动态报文序列号确定推送的消息到达指定客户端,解决了现有技术中无法验证服务器通过长连接推送的消息是否到达客户端的问题。

参照图2,示出了本申请的一种基于长连接的信息处理方法中服务器侧实施例的步骤流程图,具体可以包括如下步骤:

步骤202,基于预先与指定客户端建立的长连接,向所述指定客户端推送消息,其中,所述消息携带动态报文序列号。

当指定客户端与服务器之间预先建立了长连接,服务器可以通过该长连接,主动向指定客户端发送消息。具体而言,服务器在推送消息之前,可以获取一个随机的序列号,作为该消息的动态报文序列号;以及,可以将该动态报文序列号添加到推送的消息中,即生成携带有动态报文序列号的消息。在生成携带有动态报文序列号的消息后,服务器可以该消息发送给指定的客户端,从而使得指定客户端可以接收到该消息。

步骤204,检测在预设等待时间内是否接收到所述消息对应的确认消息,其中,所述确认消息包含所述动态报文序列号。

服务器在发送消息后,可以通过检测在预设等待时间内接收到的消息是否为指定客户端针对推送的消息反馈的确认消息,以确定推送的消息是否达到指定客户端。

步骤206,若是,则依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端;若否,则重新向所述指定客户端推送消息。

若在预设等待时间内检测到接收的消息为指定客户端针对推送的消息反馈的确认消息,则可以确定推送的消息到达了指定客户端,进而可以确定无需再向该指定客户端推送该消息,进而可以避免重复向指定客户端推送同一消息的情形;若在预设等待时间内未能检测到指定客户端针对推送的消息反馈的确认消息,则可以确定推送的消息未能到达指定客户端,存在消息丢失的情形,以及可以跳转回步骤202执行,以重新向该指定客户端推送消息,从而可以满足服务器推送的消息必达客户端的需求。

可见,本申请实施例中的服务器可以通过检测在预设等待时间内是否接收到推送的消息对应的确认消息,以确定推送的消息是否到达指定客户端,即解决了现有技术中无法验证服务器通过长连接推送的消息是否到达客户端的问题。

在实际处理中,客户端可以与服务器建立长连接,并且在建立连接后可以持续等待服务器下发的消息,即服务器可以通过该长连接,主动向客户端推送消息。例如,客户端可以按照Websocket协议与服务器建立Websocket连接,从而使得服务器可以主动传送消息给客户端,实现服务器与客户端之间的全双工通信。

参照图3,示出了本申请的一种基于长连接的信息处理方法中服务器与客户端之间的交互步骤流程图。本申请实施例中的基于长连接的信息处理方法,具体可以包括如下步骤:

步骤302,服务器基于预先与指定客户端建立的长连接,向所述指定客户端推送消息。其中,推送的消息可以携带有动态报文序列号。

本申请实施例中,可选的,动态报文序列号可以是一个动态值。例如,服务器可以在每次给指定客户端推送消息时,在推送的消息的消息头中添加一个随机的序列号,从而使得指定客户端在接收到该消息时可与依据该序列号生成对应的ACK消息。

可选的,推送的消息可以包括:服务器依据业务需求定向推送的消息。在本申请的一个可选实施例中,向所述指定客户端推送消息,具体可以包括:依据业务需求获取动态报文序列号;采用所述动态报文序列号,生成所述业务需求对应的消息;将生成的消息定向推送给所述业务需求对应的指定客户端。例如,服务器可以依据业务需求,获取一个随机的序列号,以采用该序列号生成该业务需求对应的消息;并且可以基于该业务需求,将生成的消息定向推送给该业务需求对应的指定客户端,从而使得指定客户端可以接收到该消息。

步骤304,指定客户端针对服务器推送的消息,生成对应的确认消息,其中,所述确认消息包含所述消息携带的动态报文序列号。

具体而言,指定客户端可以基于预先与服务器建立的长连接,接收到服务器推送的消息,即可以获取到服务器所推送的消息。在获取到服务器推送的消息后,指定客户端可以从该消息中获取动态报文序列号,以基于获取到的动态报文序列号,生成该消息对应的确认消息。其中,所述动态报文序列号可以用于服务器确定其所推送的消息到达指定客户端。

在本申请的一个可选实施例中,从所述消息中获取动态报文序列号,具体包括:按照整数类型顺序,从所述消息中获取指定整型数据,其中,所述指定整型数据包括至少四位数据;将所述指定字符数据中的指定位置的数值,作为所述动态报文序列号。作为本申请的一个具体示例,指定客户端在接收到服务器推送的消息后,可以按照整数(integer,int)类型顺序,从该消息的消息头中获取前4位数据,作为响应给服务器的报文序列号;以及,可以将该报文序列号中的第一位数据存入到动态变量中,以将该报文序列号中的第一位数据作为ACK消息的内容,即将该报文序列号中的第一位数据确定为确认消息中包含的动态报文序列号。其中,动态变量可以用于存储确认消息中包含的动态报文序列号。

当然,客户端也可以按照其他数据类型顺序从获取到的消息中提取报文序列号,如可以按照字符类型顺序提取报文序列号;以及可以将提取到的报文序列号中的其他位置的数据作为确认消息中包含的动态报文序列号,如可以将报文序列号中的第二位或者最后一位的数据作为动态报文序列号,本申请实施例对此不作具体限制。

在本申请的一个可选实施例中,所述生成所述消息对应的确认消息的步骤,具体可以包括:获取预置的安全数据;采用所述安全数据和所述动态报文序列号,生成所述确认消息。具体的,基于安全方面的考虑,客户端在确认消息的生成过程中,可以获取预先设置的安全数据,以采用安全数据和获取到的动态报文序列号生成服务器推送的消息对应的确认消息。

可选的,采用所述安全数据和所述动态报文序列号,生成所述确认消息,具体可以包括:将所述安全数据与所述动态报文序列号进行拼接,生成所述确认消息。本申请实施例中,客户端可以获取到的动态序列号与安全数据进行拼接,以将拼接后生成的消息内容作为确认消息的消息体返回给服务器,如可以将安全数据与动态报文序列号拼接成确认消息。可选的,本申请实施例中的安全数据可以为一个固定安全值,如可以是22,本申请实施例对此不作具体限制。

步骤306,客户端将所述确认消息发送给所述服务器,以使所述服务器依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端。

本申请实施例中,客户端在生成确认消息后,可以通过与服务器之间的长连接,将该确认消息返回给服务器,从而使得服务器可以接收到该确认消息。具体而言,服务器在推送消息后,可以检测在预设等待时间内是否接收到该消息对应的确认消息,其中,该确认消息包含推送的消息所携带的动态报文序列号。若在预设等待时间内检测到该消息对应的确认消息,则可以执行步骤308;若否,则可以执行步骤310。

在本申请的一个可选实施例中,所述检测在预设等待时间内是否接收到所述消息对应的确认消息,具体可以包括:检测在预设等待时间内接收到的消息是否包含所述动态报文序列号;当检测到接收到的消息包含所述动态报文序列号,将接收到的消息确定为所述消息对应的确认消息。具体的,服务器在推送的消息对应的预设等待时间内,可以通过对接收到的消息进行解析,以检测接收到的消息是否包含推送的消息所携带的动态报文序列号,进而可以确定接收到的消息是否为推送的消息对应的确认消息。若在预设等待时间内检测到接收的消息包含推送的消息所携带的动态报文序列号,则可以将接收到的消息确定为推送的消息对应的确认消息,以及可以执行步骤308;若在预设等待时间内检测到接收的各消息不包含推送的消息所携带的动态报文序列号,则可以执行步骤310。

步骤308,依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端。

在本申请的一个可选实施例中,所述确认消息还可以包含安全数据,所述方法还包括:从所述确认消息中获取所述安全数据;采用所述安全数据验证所述确认消息的安全性。具体的,当客户端生成的确认消息包含安全数据时,服务器在接收到该确认消息后,可以通过对该确认消息进行解析,获取到该确认消息中所包含安全数据,进而可以采用该安全数据验证该确认消息的安全性,如可以验证该确认消息是否为合法消息,以确定该确认消息是否存在安全问题。

在本申请的一个可选实施例中,采用所述安全数据验证所述确认消息的安全性,具体可以包括:检测所述安全数据是否为预设的固定值;若是,则确定所述确认消息为合法消息;否则,确定所述确认消息为非法消息。具体而言,本申请实施例中的安全数据可以为一个固定安全值。服务器在验证确认消息的安全性时,可以检测该确认消息中的安全数据是否为预设的固定值,如检测确认消息中的安全数据是否为预设的固定值22,以确定该确认消息是否为合法消息。若确认消息中的安全数据为预设的固定值,则可以确定该确认消息为合法消息,即可以确定该确认消息有效,进而可以基于该确认消息中的动态报文序列号确定推送的消息达到了指定客户端;确认消息中的安全数据并不是预设的固定值,则可以确定该确认消息为非法消息,即可以确定该确认消息无效,如可以忽略该确认消息。

步骤310,重新向所述指定客户端推送消息。

在本申请的一个可选实施例中,该基于长连接的信息处理方法还可以包括:在推送消息时,记录所述消息对应的推送次数;在重新向所述指定客户端推送消息之前,检测所述推送次数是否达到预设推送次数阈值;当推送次数未达到预设推送次数阈值,执行所述重新向所述指定客户端推送消息的步骤;当推送次数达到预设推送次数阈值,断开所述长连接。具体而言,服务器在推送消息时,可以该消息对应的推送次数,进而可以在重新向所述指定客户端推送消息之前,如在该消息对应的预设等待时间内未能接收到该消息对应的确认消息,可以检测该消息对应的推送次数是否达到预设推送次数阈值,如检测推送的消息对应的推送次数是否达到预设推送次数阈值8次;若该消息对应的推送次数未达到预设推送次数阈值,则可以执行重新向所述指定客户端推送消息的步骤,如可以返回执行步骤302,以重新向指定客户端推送消息;若消息对应的推送次数达到预设推送次数阈值,则可以断开与该指定客户端之间的长连接,从而可以释放该长连接占用的服务器资源。

在本申请的一个可选实施例中,该基于长连接的信息处理方法还可以包括:从所述消息中获取应答报文类型数据;检测所述应答报文类型数据是否为服务器标识符;当所述应答报文类型数据为服务器标识符时,执行生成所述消息对应的确认消息的步骤。

在本申请实施例中,服务器在推送消息时,可以将服务器标识符添加到推送的消息中,从而使得接到该消息的客户端可以依据该消息中的消息标识符确定出该消息对应的应答报文类型数据。具体而言,客户端在接收到消息后,可以从接收到的消息中获取该消息对应的应答报文类型数据,以采用该应答报文类型数据确定该消息的消息源,如确定接收到的消息是服务器发送的还是其他客户端发送的。其中,应答报文类型数据可以包括服务器标识符(flag)和客户端标识符,如可以将“1”作为服务器标识符,以及将“0”作为客户端标识符。客户端在获取到应答报文类型数据后,可以通过检测获取的应答报文类型数据是否为服务器标识符,以确定是否需要采用该消息携带的动态报文序列号生成对应的确认消息,以将生成的确认消息返回给服务器。当检测到检测获取的应答报文类型数据为服务器标识符,则可以确定需要采用该消息携带的动态报文序列号生成对应的确认消息,进而执行生成该消息对应的确认消息;当检测到检测获取的应答报文类型数据不是服务器标识符,则可以确定不需要采用该消息携带的动态报文序列号生成对应的确认消息,或者可以确定该应答报文类型数据为客户端标识符,进而可以按照客户端的消息处理机制对该消息进行处理,如可以按照现有客户端的消息处理机制对该消息进行处理,本申请实施例对此不作限制。

在本申请的一个可选实施例中,从所述消息中获取应答报文类型数据,具体可以包括:按照字符类型顺序,从所述消息中获取指定字符数据,其中,所述指定字符数据包括至少两位数据;将所述指定字符数据中的指定位置的数值,作为所述应答报文类型数据。例如,结合上述示例,指定客户端在接收到服务器推送的消息后,如在获取动态报文序列号后,可以按照字符(char)类型顺序,从该消息的消息头中获取如获取第5位和第6位的数据,作为指定字符数据;以及可以将该指定字符数据中的第一位数据作为应答报文类型数据,如可以将该消息头中第5位数据作为应答报文类型数据。

当然,客户端也可以采用其他方式从获取到的消息中提取应答报文类型数据,如按照其他数据类型顺序提取指定字符数据,和/或,可以将提取到的指定字符数据中的其他位置的数据作为应答报文类型数据,如可以消息头中的第6位的数据作为应答报文类型数据,本申请实施例对此不作具体限制。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图4,示出了本申请的一种基于长连接的信息处理装置实施例的结构框图。

本申请实施例中的基于长连接的信息处理装置具体可以应用于客户端中,以及可以用于执行上述实施例中客户端所执行的各步骤,具体可以包括如下模块:

消息获取模块402,用于基于预先与服务器建立的长连接,获取所述服务器推送的消息;

确认消息生成模块404,用于针对所述消息,生成对应的确认消息,其中,所述确认消息包含所述消息携带的动态报文序列号;

确认消息发送模块406,用于将所述确认消息发送给所述服务器,以使所述服务器依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端。

在本申请的一个可选实施例中,所述确认消息生成模块404,可以包括如下子模块:

报文序列号获取子模块,用于从所述消息中获取动态报文序列号,其中,所述动态报文序列号用于所述服务器确定所述消息到达指定客户端;

确认消息生成子模块,用于基于所述动态报文序列号,生成所述消息对应的确认消息。

在本申请的一个可选实施例中,所述报文序列号获取子模块,具体用于按照整数类型顺序,从所述消息中获取指定整型数据,其中,所述指定整型数据包括至少四位数据;以及,将所述指定字符数据中的指定位置的数值,作为所述动态报文序列号。

在本申请实施例中,可选的,该基于长连接的信息处理装置还可以包括:报文类型数据获取模块和报文类型检测模块。具体的,报文类型数据获取模块,用于从所述消息中获取应答报文类型数据;报文类型检测模块,用于检测所述应答报文类型数据是否为服务器标识符;其中,所述确认消息生成模块404,具体用于当所述应答报文类型数据为服务器标识符时,执行生成所述消息对应的确认消息的步骤。

在本申请的一个可选实施例中,报文类型数据获取模块,具体用于按照字符类型顺序,从所述消息中获取指定字符数据,其中,所述指定字符数据包括至少两位数据;以及,将所述指定字符数据中的指定位置的数值,作为所述应答报文类型数据。

在本申请的一个可选实施例中,所述确认消息生成模块404,可以包括如下子模块:

安全数据获取子模块,用于获取预置的安全数据;

确认消息生成子模块,具体用于采用所述安全数据和所述动态报文序列号,生成所述确认消息。

在本申请的一个可选实施例中,所述确认消息生成子模块,可以包括:拼接单元。该拼接单元,可以用于将所述安全数据与所述动态报文序列号进行拼接,生成所述确认消息。

在本申请实施例中,可选的,所述安全数据为固定安全值;所述动态报文序列号为动态值;所述消息为所述服务器依据业务需求定向推送的消息。

参照图5,示出了本申请的另一种基于长连接的信息处理装置实施例的结构框图。本申请实施例中的基于长连接的信息处理装置具体可以应用于服务器中,以及可以用于执行上述实施例中服务器所执行的各步骤,具体可以包括如下模块:

消息推送模块502,用于基于预先与指定客户端建立的长连接,向所述指定客户端推送消息,其中,所述消息携带动态报文序列号;

确认消息检测模块504,用于检测在预设等待时间内是否接收到所述消息对应的确认消息,其中,所述确认消息包含所述动态报文序列号;

消息到达确定模块506,用于在预设等待时间内接收到所述消息对应的确认消息,依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端;

消息重新推送模块,用于在预设等待时间内未接收到所述消息对应的确认消息,触发所述消息推送模块502重新向所述指定客户端推送消息。

在本申请实施例中,可选的,该基于长连接的信息处理装置还可以包括如下模块:

推送次数记录模块,用于在推送消息时,记录所述消息对应的推送次数;

推送次数检测模块,用于在所述消息重新推送模块触发所述消息推送模块502重新向所述指定客户端推送消息之前,检测所述推送次数是否达到预设推送次数阈值;

长连接断开模块,用于当推送次数达到预设推送次数阈值,断开所述长连接。

其中,消息重新推送模块,具体可以用于当推送次数未达到预设推送次数阈值,触发所述消息推送模块502执行所述重新向所述指定客户端推送消息的步骤。

在本申请的一个可选实施例中,所述确认消息检测模块504,具体可以用于检测在预设等待时间内接收到的消息是否包含所述动态报文序列号;当检测到接收到的消息包含所述动态报文序列号,将接收到的消息确定为所述消息对应的确认消息。

在本申请的一个可选实施例中,所述消息推送模块502,可以包括如下子模块:

获取子模块,用于依据业务需求获取动态报文序列号;

消息生成子模块,用于采用所述动态报文序列号,生成所述业务需求对应的消息;

推送子模块,用于将生成的消息定向推送给所述业务需求对应的指定客户端。

在本申请的一个可选实施例中,所述确认消息还包含安全数据,所述装置还可以包括如下模块:

安全数据获取模块,用于从所述确认消息中获取所述安全数据;

安全性验证模块,用于采用所述安全数据验证所述确认消息的安全性。

在本申请的一个可选实施例中,所述安全性验证模块,具体可以用于检测所述安全数据是否为预设的固定值;若是,则确定所述确认消息为合法消息;否则,确定所述确认消息为非法消息。

在本申请的一个可选实施例中,所述安全数据为固定安全值,所述动态报文序列号为动态值。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种基于长连接的信息处理方法和一种基于长连接的信息处理装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

本申请实施例公开了A1、一种基于长连接的信息处理方法,包括:

基于预先与服务器建立的长连接,获取所述服务器推送的消息;

针对所述消息,生成对应的确认消息,其中,所述确认消息包含所述消息携带的动态报文序列号;

将所述确认消息发送给所述服务器,以使所述服务器依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端。

A2、根据A1所述的方法,所述针对所述消息,生成对应的确认消息,包括:

从所述消息中获取动态报文序列号,其中,所述动态报文序列号用于所述服务器确定所述消息到达指定客户端;

基于所述动态报文序列号,生成所述消息对应的确认消息。

A3、根据A2所述的方法,所述从所述消息中获取动态报文序列号,包括:

按照整数类型顺序,从所述消息中获取指定整型数据,其中,所述指定整型数据包括至少四位数据;

将所述指定字符数据中的指定位置的数值,作为所述动态报文序列号。

A4、根据A1至A3任一所述的方法,还包括:

从所述消息中获取应答报文类型数据;

检测所述应答报文类型数据是否为服务器标识符;

当所述应答报文类型数据为服务器标识符时,执行生成所述消息对应的确认消息的步骤。

A5、根据A4所述的方法,从所述消息中获取应答报文类型数据,包括:

按照字符类型顺序,从所述消息中获取指定字符数据,其中,所述指定字符数据包括至少两位数据;

将所述指定字符数据中的指定位置的数值,作为所述应答报文类型数据。

A6、根据A4所述的方法,所述生成所述消息对应的确认消息的步骤,包括:

获取预置的安全数据;

采用所述安全数据和所述动态报文序列号,生成所述确认消息。

A7、根据A6所述的方法,所述采用所述安全数据和所述动态报文序列号,生成所述确认消息,包括:

将所述安全数据与所述动态报文序列号进行拼接,生成所述确认消息。

A8、根据A6所述的方法,所述安全数据为固定安全值;所述动态报文序列号为动态值;所述消息为所述服务器依据业务需求定向推送的消息。

本申请实施例公开了B9、一种基于长连接的信息处理方法,包括:

基于预先与指定客户端建立的长连接,向所述指定客户端推送消息,其中,所述消息携带动态报文序列号;

检测在预设等待时间内是否接收到所述消息对应的确认消息,其中,所述确认消息包含所述动态报文序列号;

若是,则依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端;若否,则重新向所述指定客户端推送消息。

B10、根据B9所述的方法,还包括:

在推送消息时,记录所述消息对应的推送次数;

在重新向所述指定客户端推送消息之前,检测所述推送次数是否达到预设推送次数阈值;

当推送次数未达到预设推送次数阈值,执行所述重新向所述指定客户端推送消息的步骤;

当推送次数达到预设推送次数阈值,断开所述长连接。

B11、根据B9所述的方法,所述检测在预设等待时间内是否接收到所述消息对应的确认消息,包括:

检测在预设等待时间内接收到的消息是否包含所述动态报文序列号;

当检测到接收到的消息包含所述动态报文序列号,将接收到的消息确定为所述消息对应的确认消息。

B12、根据B9所述的方法,所述向所述指定客户端推送消息,包括:

依据业务需求获取动态报文序列号;

采用所述动态报文序列号,生成所述业务需求对应的消息;

将生成的消息定向推送给所述业务需求对应的指定客户端。

B13、根据B9至B12任一所述的方法,所述确认消息还包含安全数据,所述方法还包括:

从所述确认消息中获取所述安全数据;

采用所述安全数据验证所述确认消息的安全性。

B14、根据B13所述的方法,采用所述安全数据验证所述确认消息的安全性,包括:

检测所述安全数据是否为预设的固定值;

若是,则确定所述确认消息为合法消息;否则,确定所述确认消息为非法消息。

B15、根据B13所述的方法,所述安全数据为固定安全值,所述动态报文序列号为动态值。

本申请实施例公开了C16、一种基于长连接的信息处理装置,包括:

消息获取模块,用于基于预先与服务器建立的长连接,获取所述服务器推送的消息;

确认消息生成模块,用于针对所述消息,生成对应的确认消息,其中,所述确认消息包含所述消息携带的动态报文序列号;

确认消息发送模块,用于将所述确认消息发送给所述服务器,以使所述服务器依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端。

C17、根据C16所述的装置,所述确认消息生成模块,包括:

报文序列号获取子模块,用于从所述消息中获取动态报文序列号,其中,所述动态报文序列号用于所述服务器确定所述消息到达指定客户端;

确认消息生成子模块,用于基于所述动态报文序列号,生成所述消息对应的确认消息。

C18、根据C17所述的装置,所述报文序列号获取子模块,具体用于按照整数类型顺序,从所述消息中获取指定整型数据,其中,所述指定整型数据包括至少四位数据;以及,将所述指定字符数据中的指定位置的数值,作为所述动态报文序列号。

C19、根据C16至C18任一所述的装置,还包括:

报文类型数据获取模块,用于从所述消息中获取应答报文类型数据;

报文类型检测模块,用于检测所述应答报文类型数据是否为服务器标识符;

其中,所述确认消息生成模块,具体用于当所述应答报文类型数据为服务器标识符时,执行生成所述消息对应的确认消息的步骤。

C20、根据C19所述的装置,报文类型数据获取模块,具体用于按照字符类型顺序,从所述消息中获取指定字符数据,其中,所述指定字符数据包括至少两位数据;以及,将所述指定字符数据中的指定位置的数值,作为所述应答报文类型数据。

C21、根据C19所述的装置,所述确认消息生成模块,包括:

安全数据获取子模块,用于获取预置的安全数据;

确认消息生成子模块,具体用于采用所述安全数据和所述动态报文序列号,生成所述确认消息。

C22、根据C21所述的装置,所述确认消息生成子模块,包括:

拼接单元,用于将所述安全数据与所述动态报文序列号进行拼接,生成所述确认消息。

C23、根据C21所述的装置,所述安全数据为固定安全值;所述动态报文序列号为动态值;所述消息为所述服务器依据业务需求定向推送的消息。

本申请实施例公开了D24、一种基于长连接的信息处理装置,包括:

消息推送模块,用于基于预先与指定客户端建立的长连接,向所述指定客户端推送消息,其中,所述消息携带动态报文序列号;

确认消息检测模块,用于检测在预设等待时间内是否接收到所述消息对应的确认消息,其中,所述确认消息包含所述动态报文序列号;

消息到达确定模块,用于在预设等待时间内接收到所述消息对应的确认消息,依据所述确认消息中的动态报文序列号确定所述消息到达指定客户端;

消息重新推送模块,用于在预设等待时间内未接收到所述消息对应的确认消息,触发所述消息推送模块重新向所述指定客户端推送消息。

D25、根据D24所述的装置,还包括:

推送次数记录模块,用于在推送消息时,记录所述消息对应的推送次数;

推送次数检测模块,用于在所述消息重新推送模块触发所述消息推送模块重新向所述指定客户端推送消息之前,检测所述推送次数是否达到预设推送次数阈值;

长连接断开模块,用于当推送次数达到预设推送次数阈值,断开所述长连接;

其中,消息重新推送模块,具体用于当推送次数未达到预设推送次数阈值,触发所述消息推送模块执行所述重新向所述指定客户端推送消息的步骤。

D26、根据D24所述的装置,所述确认消息检测模块,具体用于检测在预设等待时间内接收到的消息是否包含所述动态报文序列号;当检测到接收到的消息包含所述动态报文序列号,将接收到的消息确定为所述消息对应的确认消息。

D27、根据D24所述的装置,所述消息推送模块,包括:

获取子模块,用于依据业务需求获取动态报文序列号;

消息生成子模块,用于采用所述动态报文序列号,生成所述业务需求对应的消息;

推送子模块,用于将生成的消息定向推送给所述业务需求对应的指定客户端。

D28、根据D24至D27任一所述的装置,所述确认消息还包含安全数据,所述装置还包括:

安全数据获取模块,用于从所述确认消息中获取所述安全数据;

安全性验证模块,用于采用所述安全数据验证所述确认消息的安全性。

D29、根据D28所述的装置,所述安全性验证模块,具体用于检测所述安全数据是否为预设的固定值;若是,则确定所述确认消息为合法消息;否则,确定所述确认消息为非法消息。

D30、根据D28所述的装置,所述安全数据为固定安全值,所述动态报文序列号为动态值。

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