CN111447185B - 一种推送信息的处理方法及相关设备 - Google Patents
一种推送信息的处理方法及相关设备 Download PDFInfo
- Publication number
- CN111447185B CN111447185B CN202010161137.0A CN202010161137A CN111447185B CN 111447185 B CN111447185 B CN 111447185B CN 202010161137 A CN202010161137 A CN 202010161137A CN 111447185 B CN111447185 B CN 111447185B
- Authority
- CN
- China
- Prior art keywords
- push
- client
- server
- information
- connection
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例适用于网络管理过程,公开了一种推送信息的处理方法及相关设备,所述方法包括:从消息队列中获取第一推送信息,并获取所述第一推送信息的信息类型;在第一推送信息的信息类型为指定客户端推送类型的情况下,获取指定推送客户端的客户端标识;根据注册中心的IP地址向注册中心发送指定推送客户端的客户端标识;获取第一连接服务器标识,并确定第一连接服务器标识对应的第一连接服务器;向所述第二套接字发送所述第一推送信息,以使所述第一连接服务器获取预先存储的所述指定推送客户端的IP地址,根据指定推送客户端的IP地址将第一推送信息发送给指定推送客户端。通过本发明可以提高服务器向客户端推送信息的效率。
Description
技术领域
本申请涉及数据交互技术领域,尤其涉及一种推送信息的处理方法及相关设备。
背景技术
随着互联网技术的发展,人们可以通过上网办理多种业务,给人们生活带来很大的便捷。在办理业务时,用户通过客户端与办理业务的服务器进行交互,例如用户通过客户端进行搜索业务或支付业务时,可以与业务服务器之间建立HTTP连接,通过HTTP短轮询的方式向服务器发送搜索请求或支付请求,并在一定时间内定时向服务器发送请求,以使服务器在进行业务处理后得到请求处理结果后,基于客户端定时发送的请求返回请求结果,而HTTP连接是一种基于“请求-响应”方式的连接,只有客户端向服务器发送请求后,服务器才能基于该请求向客户端发送消息,在服务器主动产生一些针对客户端的推送信息时,就只能等待客户端发送请求后,才能响应该请求向客户端发送推送信息,影响向客户端推送信息的效率。
发明内容
本申请提供一种推送信息的处理方法及相关设备,通过本发明可以提高服务器向客户端推送信息的效率。
本发明实施例第一方面提供了一种推送信息的处理方法,包括:
数据服务器从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息,并获取所述第一推送信息的信息类型,所述第一推送信息的信息类型为全量客户端推送类型或指定客户端推送类型中的一种;
在所述第一推送信息的信息类型为指定客户端推送类型的情况下,所述数据服务器获取所述第一推送信息携带的指定推送客户端的客户端标识;
所述数据服务器获取注册中心的IP地址,并根据所述注册中心的IP地址向所述注册中心发送所述指定推送客户端的客户端标识,以使所述注册中心根据所述指定推送客户端的客户端标识,从预存的客户端标识与传输路径信息的对应关系中,确定并返回所述指定推送客户端对应的第一传输路径信息;
所述数据服务器获取所述第一传输路径信息包含的第一连接服务器标识,并从多个预先与所述数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,所述数据服务器与所述第一连接服务器之间的长连接为基于所述数据服务器的第一套接字和所述第一连接服务器的第二套接字建立的;
所述数据服务器通过所述第一套接字向所述第二套接字发送所述第一推送信息,以使所述第一连接服务器在通过所述第二套接字监听到所述第一套接字发送所述第一推送信息的情况下,获取预先存储的所述指定推送客户端的IP地址,所述第一连接服务器根据所述指定推送客户端的IP地址将所述第一推送信息发送给所述指定推送客户端。
结合第一方面,在第一种可能的实现方式中,所述方法还包括:
在所述第一推送信息的信息类型为全量客户端推送类型的情况下,所述数据服务器通过所述第一套接字,将所述第一推送信息发送给所有建立了长连接的连接服务器,以使各个所述建立了长链接的连接服务器获取各自预先存储的多个推送客户端的客户端标识与各自的IP地址的对应关系中获取所述多个推送客户端的IP地址,并根据所述多个推送客户端的IP地址,将所述第一推送信息发送给对应的推送客户端。
结合第一方面,在第二种可能的实现方式中,所述方法还包括:
所述数据服务器根据获取所述数据服务器的IP地址以及所述数据服务器的目标端口的端口号,生成所述第一套接字;
所述数据服务器监听所述第一套接字,并在监听到所述第一连接服务器的所述第二套接字向所述第一套接字发送连接请求消息时,获取所述连接请求消息中携带的第一同步序列编码;
所述数据服务器针对所述连接请求消息生成第二同步序列编码,并将所述第一同步序列编码加一得到第一同步确认编码,生成包含所述第二同步序列编码以及所述第一同步确认编码的连接响应消息,以使所述第一连接服务器在通过所述第二套接字接收到所述数据服务器通过所述第一套接字发送的所述请求响应消息后,对所述第一同步确认编码验证后将所述第二同步序列编码加一得到第二同步确认编码,并生成包含所述第二同步确认编码的连接确认消息;
所述数据服务器通过所述第一套接字接收所述第一连接服务器通过所述第二套接字发送的所述连接确认消息,并根据所述第二同步序列编码对所述第二同步确认编码进行验证,在验证通过的情况下,完成与所述第一连接服务器之间长连接的建立。
本发明实施例第二方面提供了一种推送信息的处理方法,包括:
第一连接服务器通过第二套接字接收数据服务器的第一套接字发送的第一推送信息,所述第一连接服务器与所述数据服务器之间存在基于所述第一连接服务器的所述第二套接字与所述数据服务器的所述第一套接字建立的长连接,所述第一推送信息为所述数据服务器从与业务服务器之间的消息队列中获取到之后,在确定所述第一推送信息为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识,并根据注册中心的IP地址,向注册中心发送所述指定推送客户端的客户端标识,所述注册中心根据所述指定推送客户端的客户端标识确定所述指定推送客户端对应的第一传输路径信息并发送给所述数据服务器,所述数据服务器根据所述第一传输路径信息中包含的第一连接服务器标识,通过所述第一套接字向所述第二套接字发送的;
所述第一连接服务器获取所述第一推送信息中携带的所述指定推送客户端的客户端标识,并根据所述指定推送客户端的客户端标识,从预先存储的多个客户端的客户端标识与各自的IP地址的对应关系中,获取所述指定推送客户端的IP地址;
所述第一连接服务器根据所述指定推送客户端的IP地址,将所述第一推送信息发送给所述指定推送客户端。
结合第二方面,在第一种可能的实现方式中,所述方法还包括:
所述第一连接服务器通过所述第二套接字接收所述数据服务器通过所述第一套接字发送的第二推送信息;
所述第一连接服务器在确定所述第二推送信息中未携带客户端标识的情况下,从预先存储的多个推送客户端的客户端标识与各自的IP地址的对应关系中,获取所述多个推送客户端的IP地址,并根据所述多个推送客户端的IP地址,将所述第二推送信息发送给对应的推送客户端。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一连接服务器通过第二套接字接收数据服务器的第一套接字发送的第一推送信息之前,还包括:
所述第一连接服务器接收负载均衡设备发送的业务连接请求,所述业务连接请求为所述负载均衡设备在接收到所述指定推送客户端发送的业务连接请求后,根据预设的负载均衡策略,从所述负载均衡设备连接的多个连接服务器中将所述第一连接服务器确定为所述指定推送客户端对应的连接服务器之后,发送给所述第一连接服务器的;
所述第一连接服务器获取所述业务连接请求中携带的所述指定推送客户端的客户端标识以及所述指定推送客户端的IP地址,并建立所述指定推送客户端的客户端标识以及所述指定推送客户端的IP地址的对应关系。
本发明实施例第三方面提供了一种数据服务器,包括:
推送信息交互模块,用于从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息,并获取所述第一推送信息的信息类型,所述第一推送信息的信息类型为全量客户端推送类型或指定客户端推送类型中的一种;
客户端标识获取模块,用于在所述第一推送信息的信息类型为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识;
路径获取模块,用于获取注册中心的IP地址,并根据所述注册中心的IP地址向所述注册中心发送所述指定推送客户端的客户端标识,以使所述注册中心根据所述指定推送客户端的客户端标识从预存的客户端标识与传输路径信息的对应关系中,确定并返回所述指定推送客户端对应的第一传输路径信息;
服务器确定模块,用于获取所述第一传输路径信息包含的第一连接服务器标识,并从多个预先与所述数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,所述数据服务器与所述第一连接服务器之间的长连接为基于所述数据服务器的第一套接字和所述第一连接服务器的第二套接字建立的;
信息发送模块,用于通过所述第一套接字向所述第二套接字发送所述第一推送信息,以使所述第一连接服务器在通过所述第二套接字监听到所述第一套接字发送所述第一推送信息的情况下,获取预先存储的所述指定推送客户端的IP地址,所述第一连接服务器根据所述指定推送客户端的IP地址将所述第一推送信息发送给所述指定推送客户端。
本发明实施例第四方面提供了一种连接服务器,包括:
消息接收模块,用于通过第二套接字接收数据服务器的第一套接字发送的第一推送信息,所述第一连接服务器与所述数据服务器之间存在基于所述第一连接服务器的所述第二套接字与所述数据服务器的所述第一套接字建立的长连接,所述第一推送信息为所述数据服务器从与业务服务器之间的消息队列中获取到之后,在确定所述第一推送信息为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识,并根据注册中心的IP地址,向注册中心发送所述指定推送客户端的客户端标识,所述注册中心根据所述指定推送客户端的客户端标识确定所述指定推送客户端对应的第一传输路径信息并发送给所述数据服务器,所述数据服务器根据所述第一传输路径信息中包含的第一连接服务器标识,通过所述第一套接字向所述第二套接字发送的;
IP地址获取模块,用于获取所述第一推送信息中携带的所述指定推送客户端的客户端标识,并根据所述指定推送客户端的客户端标识,从预先存储的多个客户端的客户端标识与各自的IP地址的对应关系中,获取所述指定推送客户端的IP地址;
消息推送模块,用于根据所述指定推送客户端的IP地址,将所述第一推送信息发送给所述指定推送客户端。
本发明实施例第五方面提供了一种推送信息的处理装置,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行本发明实施例中上述任一方面中的方法。
本发明实施例第六方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述任一方面中的方法。
本发明实施例中,数据服务器从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息后,获取第一推送信息的消息类型,在第一推送信息的信息类型为指定客户端推送类型的情况下,数据服务器获取第一推送信息携带的指定推送客户端的客户端标识,数据服务器获取注册中心的IP地址,并根据注册中心的IP地址向注册中心发送指定推送客户端的客户端标识,注册中心根据指定推送客户端的客户端标识从预存的客户端标识与传输路径信息的对应关系中,确定并返回指定推送客户端对应的第一传输路径信息,进而数据服务器获取第一传输路径信息包含的第一连接服务器标识,并从多个预先与数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,数据服务器通过第一套接字向第一连接服务器的第二套接字发送第一推送信息,使得第一连接服务器在通过第二套接字监听到第一套接字发送第一推送信息后,获取预先存储的指定推送客户端的IP地址,根据指定推送客户端的IP地址将第一推送信息发送给指定推送客户端。通过数据服务器与第一连接服务器之间建立的长连接,实现了业务服务器的第一推送信息实时地向指定推送客户端推送信息,提高了业务服务器的推送信息被推送给客户端的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例提供的一种推送信息处理***的网络架构示意图;
图1b是本发明实施例提供的另一种推送信息处理***的网络架构示意图;
图2为本发明实施例提供的一种推送信息的处理方法的流程示意图;
图3为本发明实施例提供的另一种推送信息的处理***的交互示意图;
图4为本发明实施例提供的一种数据服务器的结构示意图;
图5为本发明实施例提供的一种连接服务器的结构示意图;
图6是本发明实施例提供的一种推送信息的处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
介绍本发明提供的资源数据获取方法之前,首先介绍本发明实施例提供的推送信息的处理方法所基于的网络架构,参见图1a,图1a为本发明实施例提供的一种推送信息处理***的网络架构示意图,如图所示,所述网络架构至少包括数据服务器001、连接服务器集群002、业务服务器003、注册中心004、用户终端005和负载均衡设备006。
其中,业务服务器003可以是运营任意业务的服务器,包括社交业务、金融业务、咨询业务等,负载均衡设备006可以包括负载均衡服务器0062和反向代理服务器集群0061,反向代理服务器集群0061可以包含至少一个反向代理服务器,负载均衡服务器0062可以是LVS(Linux Virtual Server,Linux虚拟服务器)设备,反向代理服务器集群0061中的反向代理服务器可以是Nginx(Engine X,引擎X)服务器,负载均衡设备006可以与用户终端005建立网络连接。连接服务器集群002中可以包含至少一个连接服务器,多个连接服务器均与数据服务器001建立长连接,用户终端005中安装有业务服务器003所运营业务的客户端,本实施例中提供的推送信息的处理***中可以包含多个用户终端,图1a中仅示例性地画出了用户终端005。
负载均衡设备006可以对来自不同用户终端针对业务服务器的业务连接请求进行均衡负载,在有不同的用户终端访问业务服务器时,负载均衡设备006根据预设的负载均衡策略,将连接服务器集群002中不同的连接服务器及其与数据服务器之间建立的长连接分配给不同的用户终端,同时负载均衡设备006根据注册中心的IP地址,将各个用户终端中的客户端标识(如登录客户端账户的账户名等),以及用户终端对应分配到的连接服务器的标识发送给注册中心004,以使注册中心004将各个用户终端的客户端标识与对应的连接服务器的标识对应存储。并且负载均衡设备006可以将用户终端的业务连接请求发送给该用户终端被分配的连接服务器,该连接服务器可以将业务连接请求中携带的客户端标识以及业务连接请求中携带的用户终端的IP地址对应存储。
其中,一种实现方式中,负载均衡设备006中的反向代理服务器可以包含多个,一个负载均衡服务器0062可以分别与多个反向代理服务器连接,实现反向代理的负载均衡,进而每个反向代理服务器可以与多个连接服务器连接,实现长连接的负载均衡。
另外,负载均衡设备006与连接服务器集群002之间可以基于IP地址建立TCP/IP连接,或者建立长连接。连接服务器集群002与数据服务器001之间可以通过长连接进行交互。数据服务器001与注册中心之间可以基于IP地址通过TCP/IP连接进行交互。
参见图1b,图1b是本发明实施例提供的另一种推送信息处理***的网络架构示意图,该网络架构可以实现针对多个反向代理服务器的负载均衡,以及连接服务器与数据服务器之间的负载均衡。图1b对应的推送信息***的网络架构依然包括数据服务器001、连接服务器集群(图1b中示例性地包括连接服务器0021、连接服务器0022、连接服务器0023、连接服务器0024和连接服务器0025)、业务服务器(未示出,其位置可参见图1a中业务服务器003的位置)、注册中心(未示出,其位置可参见图1a中注册中心004的位置)、用户终端(未示出,其位置可参见图1a中用户终端005的位置)和负载均衡设备006,负载均衡设备包含一个负载均衡设备0062和反向代理服务器集群(图1b中示例性地包括反向代理服务器00611、反向代理服务器00612)。其中反向代理服务器00611、反向代理服务器00612均与负载均衡设备0062连接;反向代理服务器00611可以分别与连接服务器0021、连接服务器0022建立长连接,反向代理服务器00612可以分别与服务器0023、连接服务器0024和连接服务器0025建立长连接;连接服务器0021、连接服务器0022、连接服务器0023、连接服务器0024和连接服务器0025均可以与数据服务器001建立长连接。
接下来介绍本发明实施例提供的推送信息的处理方法,所述推送信息获取方法可以基于图1a或图1b所示的网络架构实现。
参见图2,图2为本发明实施例提供的一种推送信息的处理方法的流程示意图,如图所示,所述方法可以包括以下步骤:
S201,数据服务器从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息,并获取所述第一推送信息的信息类型。
具体的,业务服务器产生第一推送信息后,将第一推送信息发送至数据服务器对应的消息队列,数据服务器作为消息的消费者从消息队列中读取第一推送信息。数据服务器对应的消息队列可以是基于Kafka(卡夫卡消息中间件)、ActiveMQ(一种纯Java程序的消息中间件)、RabbitMQ(一种基于高级消息队列协议的消息中间件)或RocketMQ(一种分布式消息中间件)的消息队列,具体不做限定。
其中,第一推送信息可以是业务服务器产生的任意需要向客户端推送的信息,可以是业务服务器根据预设的业务逻辑生成的业务提醒消息,如社交业务中用户特别关注的对象有了新动态后,将特别关注的对象的新动态推送给用户,可以是业务服务器基于客户端的版本升级生成的针对客户端的版本更新提醒消息,还可以是业务服务器在接收到开发人员配置的客户端的热更新资源后,将客户端的热更新资源作为第一推送信息发送至消息队列,等等。
这里,第一推送信息的信息类型为全量客户端推送类型或指定客户端推送类型中的一种。当第一推送信息是热更新资源时,所有客户端都需要进行热更新,需要把第一推送信息发送给所有的客户端,这时第一推送信息是全量客户端推送类型。当第一推送信息是根据业务逻辑生成的业务提醒消息时,例如,第一推送信息是针对18岁以下用户的特殊提醒消息,即第一推送信息是向18岁以下用户的客户端发送的,这时第一推送信息为指定客户端推送类型。若第一推送信息为全量客户端推送类型,第一推送信息的推送目标是全部客户端,业务服务器在生成第一推送信息时,不把目标客户端的标识添加进第一推送信息,若第一推送信息为指定客户端推送类型,业务服务器在生成第一推送信息时,将目标客户端的标识添加至第一推送信息中。因此数据服务器获取到第一推送信息后,可以根据第一推送信息中是否包含目标客户端的标识来判断第一推送信息的信息类型,若目标客户端的标识为空,即为全量客户端推送类型,若目标客户端的标识不为空,即为指定客户端推送类型。
S202,在所述第一推送信息的信息类型为指定客户端推送类型的情况下,所述数据服务器获取所述第一推送信息携带的指定推送客户端的客户端标识。
这里,若第一推送信息的信息类型为指定客户端推送类型,必然携带目标客户端的客户端标识,将第一推送信息携带的客户端标识对应的客户端确定为指定推送客户端。
S203,所述数据服务器获取注册中心的IP地址,并根据所述注册中心的IP地址向所述注册中心发送所述指定推送客户端的客户端标识。
数据服务器中可以预先存储注册中心的IP地址,进而根据注册中心的IP地址向注册中心发送指定推送客户端的客户端标识。注册中心中存储有指定客户端的客户端标识与第一传输路径信息的对应关系。第一传输路径信息是负载均衡设备在首次接收到指定推送客户端的业务连接请求或一定的周期内首次接收到指定推送客户端的业务连接请求时,为指定推送客户端分配与业务服务器进行交互的连接服务器后产生的。第一传输路径信息中至少包含负载均衡设备为指定推送客户端分配的第一连接服务器的第一连接服务器标识。负载均衡设备将指定推送客户端的客户端标识以及对应的第一传输路径信息发送给注册中心存储进行对应存储,注册中心接收到数据服务器发送的指定推送客户端的客户端标识后,根据指定推送客户端的客户端标识从预存的客户端标识与传输路径信息的对应关系中,获取并返回指定推送客户端对应的第一传输路径信息。可选的,负载均衡设备由负载均衡服务器和反向代理服务器构成时,第一传输路径信息中可以包含负载均衡服务器为指定客户端分配的反向代理服务器的标识。
S204,所述数据服务器获取所述第一传输路径信息包含的第一连接服务器标识,并从多个预先与所述数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器。
这里,数据服务器与多个连接服务器建立有长连接,根据第一连接服务器标识确定出对应的第一连接服务器,数据服务器与第一连接服务器之间的长连接为基于数据服务器的第一套接字和第一连接服务器的第二套接字建立的。
在数据服务器与第一连接服务器的套接字建立过程中,数据服务器根据数据服务器的IP地址以及数据服务器的目标端口的端口号,生成第一套接字,数据服务器的目标端口是数据服务器的操作***为建立长连接的进程分配的端口。例如数据服务器的IP地址是20.1.1.2,目标端口的端口是80,那么第一套接字可以通过20.1.1.2:80的形式表示。同样,第一连接服务器也需要根据自身的IP地址,以及第一连接服务器的操作***为建立与数据服务器的长连接的进程所分配的端口,生成第二套接字。数据服务器的第一套接字处于监听状态,第一连接服务器生成申请连接的第一同步序列编码,并通过第二套接字将第一同步序列编码通过连接请求消息发送给第一套接字,其中,第二套接字可以调用connect函数向第一套接字发送连接请求消息,而后第一连接服务器的第二套接字处于监听状态。
数据服务器监听第一套接字,在监听到第一连接服务器的第二套接字向第一套接字发送连接请求消息时,提取连接请求消息中携带的第一同步序列编码,其中,第一套接字可以通过accept函数接收第二套接字发送的连接请求消息。数据服务器针对连接请求消息生成第二同步序列编码,并将第一同步序列编码加一得到第一同步确认编码,而后将第一同步确认编码以及第二同步序列编码通过连接响应消息,发送给第二套接字,而后数据服务器的第一套接字处于监听状态。
第一连接服务器通过第二套接字监听到第一套接字发送请求响应消息后,第一连接服务器验证第一同步确认编码是否与第一同步序列编码加一后的值相等,若相等,第一连接服务器将第二同步序列编码加一后得到第二同步确认编码,进而通过第二套接字向第一套接字发送携带第二同步确认编码的连接确认消息。
数据服务器通过第一套接字监听到第二套接字发送连接确认消息后,对第二同步确认编码进行验证,判断第二同步确认编码是否与第二同步序列编码加一后的值相等,若相等,说明验证通过,数据服务器与第一连接服务器之间的长连接建立。数据服务器以第一连接服务器之间的长连接建立之后,为了保持长连接维持连接的状态,第一连接服务器还需定时向数据服务器发送心跳数据包,以使数据服务器根据心跳数据包继续保持与第一连接服务器的长连接,若数据服务器一定时间段内未收到第一连接服务器发送的心跳数据包,数据服务器判定第一连接服务器因为硬件等其他原因处于离线状态,而断开与第一连接服务器的长连接。
上面介绍了第一连接服务器主动向数据服务器申请建立长连接的过程,另一种可选的方式中还可以由数据服务器主动向第一连接服务器申请建立长连接,具体实现可参见上述过程,不再赘述。
S205,所述数据服务器通过所述第一套接字向所述第二套接字发送所述第一推送信息。
这里,第一连接服务器在通过第二套接字监听到第一套接字发送第一推送信息的情况下,首先判断第一推送信息中是否包含客户端标识,若存在,则从预先存储的推送客户端的IP地址中,获取第一推送信息中包含的客户端标识,也就是指定推送客户端的客户端标识对应的IP地址,第一连接服务器根据指定推送客户端的IP地址将第一推送信息发送给指定推送客户端。若第一连接服务器通过第二套接字接收到数据服务器通过第一套接字发送的第二推送信息,并且第一连接服务器确定第二推送信息中未携带任何客户端标识,则获取预先存储的全部的推送客户端的IP地址,并根据全部的推送客户端的IP地址,将第二推送信息发送给对应的推送客户端。
其中,第一连接服务器中存储的指定推送客户端的IP地址可以是负载均衡设备在首次接收到指定推送客户端发送的业务连接请求,或者在一定的周期中首次接收到指定推送客户端发送的业务连接请求后,负载均衡设备按照预设的负载均衡策略,如基于权重的负载均衡策略、基于客户端IP地址的负载均衡策略等,从负载均衡设备连接的多个连接服务器中将第一连接服务器确定为指定推送客户端对应的连接服务器之后,直接将指定推送客户端的IP地址或携带指定推送客户端的IP地址的业务连接请求发送给第一连接服务器,使第一连接服务器获取指定推送客户端的IP地址,并建立指定推送客户端的客户端标识与IP地址的对应关系。这里的业务连接请求,可以是针对业务服务的任意业务连接请求,也可以是仅触发为指定推送客户端分配连接服务器的请求。
第一连接服务根据指定推送客户端的IP地址将第一推送信息发送给指定推送客户端时,第一连接服务器可以通过负载均衡设备将第一推送信息发送给指定推送客户端,即第一连接服务器将第一推送信息以及指定推送客户端的IP地址发送给负载均衡设备,使负载均衡设备根据指定推送客户端的IP地址将第一推送信息发送给指定推送客户端。第一连接服务器也可以不经过负载均衡设备,直接根据指定推送客户端的IP地址将第一推送信息发送给指定推送客户端。
本发明实施例中,数据服务器从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息后,获取第一推送信息的消息类型,在第一推送信息的信息类型为指定客户端推送类型的情况下,数据服务器获取第一推送信息携带的指定推送客户端的客户端标识,数据服务器获取注册中心的IP地址,并根据注册中心的IP地址向注册中心发送指定推送客户端的客户端标识,注册中心根据指定推送客户端的客户端标识从预存的客户端标识与传输路径信息的对应关系中,确定并返回指定推送客户端对应的第一传输路径信息,进而数据服务器获取第一传输路径信息包含的第一连接服务器标识,并从多个预先与数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,数据服务器通过第一套接字向第一连接服务器的第二套接字发送第一推送信息,使得第一连接服务器在通过第二套接字监听到第一套接字发送第一推送信息后,获取预先存储的指定推送客户端的IP地址,根据指定推送客户端的IP地址将第一推送信息发送给指定推送客户端。通过数据服务器与第一连接服务器之间建立的长连接,实现了业务服务器的第一推送信息实时地向指定推送客户端推送信息,提高了业务服务器的推送信息被推送给客户端的效率。
参见图3,图3为本发明实施例提供的一种推送信息的处理***的交互示意图,如图所示,基于所述推送信息的处理***可以执行推送信息的处理方法,所述方法可以包括以下步骤:
S301,指定推送客户端向负载均衡设备发送业务连接请求。
这里,业务连接请求可以是针对业务服务器的任意业务请求,例如登录请求、支付请求等,业务连接请求中携带第一指定推送客户端的客户端标识。预先为推送信息的处理***中的连接服务器设置一定的数据有效周期,在数据有效周期内,某个推送客户端可以通过固定的连接服务器进行数据传输,在不同的数据有效周期,负载均衡设备可以为推送客户端重新分配连接服务器。也就是说,该业务连接请求可以是在某个数据有效周期内,指定推送客户端首次向负载均衡设备发送的业务连接请求,负载均衡设备需要为指定推送客户端分配连接服务器。
S302,负载均衡设备根据预设的负载均衡策略,从建立了长连接的多个连接服务器中将第一连接服务器分配给指定推送客户端。
负载均衡设备中的负载均衡策略可以是基于权重的负载均衡策略、基于最少连接的负载均衡策略、或是基于响应时间最短的负载均衡策略等等。例如基于权重的负载均衡策略中,可以根据各个连接服务器的权重,以及当前各个连接服务器对应的推送终端的数量确定第一连接服务器;基于最少连接的负载均衡策略中,可以将建立了长连接的多个连接服务器中对应的推送客户端最少的连接服务器确定为第一连接服务器;基于响应时间最短的负载均衡策略中,可以将建立了长连接的多个连接服务器中,当前响应时间最短的连接服务器确定为第一连接服务器。
S303,负载均衡设备将第一连接服务器的第一连接服务器标识以及指定推送客户端的客户端标识,发送给注册中心。
S304,注册中心将第一连接服务器标识以及指定推送客户端的客户端标识对应存储。
S305,负载均衡设备将业务连接请求通过与第一连接服务器之间建立的长连接发送给第一连接服务器。
S306,第一连接服务器对业务连接请求进行鉴权,在鉴权通过后通过第二套接字将业务连接请求发送给数据服务器的第一套接字。
这里,第一连接服务器可以对业务连接请求进行初步的鉴权,例如,判断来自指定推送客户端的业务连接请求的发送频率是否合法,指定推送客户端所登录的账户是否存在多端登录等。
S307,数据服务器将业务连接请求发送至第一消息队列。
第一消息队列是业务服务器与数据服务器之间的消息队列,数据服务器是第一消息队列的消息产生者,业务服务器是第一消息队列的消息消费者。
S308,业务服务器从第一消息队列中获取业务连接请求,并进行响应的业务处理。
业务服务器从第一消息队列中获取到业务连接请求后,根据业务连接请求执行响应的业务处理,例如,若业务连接请求是登录请求,业务服务器根据业务连接请求中携带的登录名和登录密码进行登录验证;若业务连接请求是支付请求,业务服务器根据业务连接请求中携带的支付对象标识、支付金额、支付密码进行支付操作。
S309,业务服务器生成第一推送信息。
这里,第一推送信息可以是业务服务器响应业务连接请求生成的推送信息,也可以是与业务连接请求无关的其他推送信息,例如热更新资源、关注对象的最新动态等。
S310,业务服务器将第一推送信息将第一推送信息发送至第二消息队列。
第二消息队列是业务服务器与数据服务器之间的消息队列,业务服务器是第二消息队列的消息生产者,数据服务器是第二消息队列的消息消费者。
S311,数据服务器从第二消息队列中获取第一推送信息,并确定第一推送信息的信息类型。
S312,在第一推送信息为指定客户端推送类型的情况下,数据服务器获取第一推送信息携带的指定推送客户端的客户端标识。
S313,数据服务器获取注册中心的IP地址,并根据注册中心的IP地址向注册中心发送指定推送客户端的客户端标识。
S314,注册中心获取指定推送客户端的客户端标识对应的第一传输路径信息,并将第一传输路径信息发送给数据服务器。
S315,数据服务器提取第一传输路径信息中的第一连接服务器标识,并从多个预先与数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器。
S316,数据服务器通过第一套接字向第一连接服务器的第二套接字发送第一推送信息。
S317,第一连接服务器通过第二套接字监听到第一套接字发送的第一推送信息后,根据第一推送信息携带的指定推送客户端的客户端标识,获取指定推送客户端的IP地址。
S318,第一连接服务器根据指定推送客户端的IP地址,将第一推送信息发送给指定推送客户端。
S319,在第一推送信息为全量客户端推送类型的情况下,数据服务器通过与各个连接服务器建立长连接的套接字,分别将第一推送信息发送给各个连接服务器的套接字。
其中,与数据服务器建立长连接的连接服务器包括第一连接服务器和其他连接服务器。第一连接服务器是与数据服务器建立长连接的连接服务器中的一个,第一套接字是数据连接服务器所基于的,向第一连接服务器的第二套接字发送第一推送信息的套接字。针对其他连接服务器,数据服务器使用对应与其他连接服务器建立长连接的套接字发送第一推送信息。
S320,连接服务器在确定第一推送信息未携带客户端标识的情况下,从预先存储的全部推送客户端的客户端标识与各自的IP地址的对应关系中,获取预先存储的全部推送客户端的IP地址。
S321,连接服务器根据预先存储的全部推送客户端的IP地址,将第一推送信息推送给对应的推送客户端。
本发明实施例中,基于本实施例中的推送信息的处理***中数据服务器与各个连接服务器之间的长连接,实现将第一推送信息实时推送给指定推送客户端,或者将第一推送信息实时推送给全量的推送客户端,提高了业务服务器的第一推送信息被推送给客户端的效率,保证了第一推送信息的时效性。
参见图4,图4为本发明实施例提供的一种数据服务器的结构示意图,如图所示,所述数据服务器40可以包括:
推送信息交互模块401,用于从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息,并获取所述第一推送信息的信息类型,所述第一推送信息的信息类型为全量客户端推送类型或指定客户端推送类型中的一种;
客户端标识获取模块402,用于在所述第一推送信息的信息类型为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识;
路径获取模块403,用于获取注册中心的IP地址,并根据所述注册中心的IP地址向所述注册中心发送所述指定推送客户端的客户端标识,以使所述注册中心根据所述指定推送客户端的客户端标识从预存的客户端标识与传输路径信息的对应关系中,确定并返回所述指定推送客户端对应的第一传输路径信息;
服务器确定模块404,用于获取所述第一传输路径信息包含的第一连接服务器标识,并从多个预先与所述数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,所述数据服务器与所述第一连接服务器之间的长连接为基于所述数据服务器的第一套接字和所述第一连接服务器的第二套接字建立的;
信息发送模块405,用于通过所述第一套接字向所述第二套接字发送所述第一推送信息,以使所述第一连接服务器在通过所述第二套接字监听到所述第一套接字发送所述第一推送信息的情况下,获取预先存储的所述指定推送客户端的IP地址,所述第一连接服务器根据所述指定推送客户端的IP地址将所述第一推送信息发送给所述指定推送客户端。
具体实现中,所述数据服务器可以通过其内置的各个功能模块执行如图2-图3的推送信息的处理方法中数据服务器执行的各个步骤,具体实施细节可参阅图2-图3对应的实施例中各个步骤的实现细节,此处不再赘述。
本发明实施例中,推送信息交互模块从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息后,获取第一推送信息的消息类型,在第一推送信息的信息类型为指定客户端推送类型的情况下,客户端标识获取模块获取第一推送信息携带的指定推送客户端的客户端标识,路径获取模块获取注册中心的IP地址,并根据注册中心的IP地址向注册中心发送指定推送客户端的客户端标识,注册中心根据指定推送客户端的客户端标识从预存的客户端标识与传输路径信息的对应关系中,确定并返回指定推送客户端对应的第一传输路径信息,进而服务器确定模块获取第一传输路径信息包含的第一连接服务器标识,并从多个预先与数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,信息发送模块通过第一套接字向第一连接服务器的第二套接字发送第一推送信息,使得第一连接服务器在通过第二套接字监听到第一套接字发送第一推送信息后,获取预先存储的指定推送客户端的IP地址,根据指定推送客户端的IP地址将第一推送信息发送给指定推送客户端。通过数据服务器与第一连接服务器之间建立的长连接,实现了业务服务器的第一推送信息实时地向指定推送客户端推送信息,提高了业务服务器的推送信息被推送给客户端的效率。
参见图5,图5为本发明实施例提供的一种连接服务器的结构示意图,如图所示,所述连接服务器50可以包括:
消息接收模块501,用于通过第二套接字接收数据服务器的第一套接字发送的第一推送信息,所述第一连接服务器与所述数据服务器之间存在基于所述第一连接服务器的所述第二套接字与所述数据服务器的所述第一套接字建立的长连接,所述第一推送信息为所述数据服务器从与业务服务器之间的消息队列中获取到之后,在确定所述第一推送信息为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识,并根据注册中心的IP地址,向注册中心发送所述指定推送客户端的客户端标识,所述注册中心根据所述指定推送客户端的客户端标识确定所述指定推送客户端对应的第一传输路径信息并发送给所述数据服务器,所述数据服务器根据所述第一传输路径信息中包含的第一连接服务器标识,通过所述第一套接字向所述第二套接字发送的;
IP地址获取模块502,用于获取所述第一推送信息中携带的所述指定推送客户端的客户端标识,并根据所述指定推送客户端的客户端标识,从预先存储的多个客户端的客户端标识与各自的IP地址的对应关系中,获取所述指定推送客户端的IP地址;
消息推送模块503,用于根据所述指定推送客户端的IP地址,将所述第一推送信息发送给所述指定推送客户端。
具体实现中,所述连接服务器可以通过其内置的各个功能模块执行如图2-图3的推送信息的处理方法中连接服务器执行的各个步骤,具体实施细节可参阅图2-图3对应的实施例中各个步骤的实现细节,此处不再赘述。
本发明实施例中,消息接收模块通过第二套接字接收数据服务器的第一套接字发送的第一推送信息,IP地址获取模块获取第一推送信息中携带的指定推送客户端的客户端标识,并根据指定推送客户端的客户端标识,从预先存储的多个客户端标识与各自的IP地址的对应关系中,获取指定推送客户端的IP地址,进而消息推送模块根据指定推送客户端的IP地址,将第一推送信息发送给指定推送客户端。通过数据服务器与第一连接服务器之间建立的长连接,实现了业务服务器的第一推送信息实时地向指定推送客户端推送信息,提高了业务服务器的推送信息被推送给客户端的效率。
参见图6,图6是本发明实施例提供的一种推送信息的处理装置的结构示意图。如图6所示,所述推送信息的处理装置60可以包括:至少一个处理器601,例如CPU,至少一个网络接口604,用户接口603,存储器605,至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,用户接口603可以包括显示屏(Display)、键盘(Keyboard),可选用户接口603还可以包括标准的有线接口、无线接口。网络接口604可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器605可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器605可选地还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的数据服务器60中,网络接口604可以用于连接业务服务器、注册中心以及连接服务器;而用户接口603主要用于为用户提供输入的接口;而处理器601可以用于调用存储器605中存储的设备控制应用程序,以实现:
从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息,并获取所述第一推送信息的信息类型,所述第一推送信息的信息类型为全量客户端推送类型或指定客户端推送类型中的一种;
在所述第一推送信息的信息类型为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识;
获取注册中心的IP地址,并根据所述注册中心的IP地址向所述注册中心发送所述指定推送客户端的客户端标识,以使所述注册中心根据所述指定推送客户端的客户端标识从预存的客户端标识与传输路径信息的对应关系中,确定并返回所述指定推送客户端对应的第一传输路径信息;
获取所述第一传输路径信息包含的第一连接服务器标识,并从多个预先与所述数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,所述数据服务器与所述第一连接服务器之间的长连接为基于所述数据服务器的第一套接字和所述第一连接服务器的第二套接字建立的;
通过所述第一套接字向所述第二套接字发送所述第一推送信息,以使所述第一连接服务器在通过所述第二套接字监听到所述第一套接字发送所述第一推送信息的情况下,获取预先存储的所述指定推送客户端的IP地址,所述第一连接服务器根据所述指定推送客户端的IP地址将所述第一推送信息发送给所述指定推送客户端。
在图6所示的数据服务器60中,网络接口604可以用于连接数据服务器、负载均衡设备或用户终端;而用户接口603主要用于为用户提供输入的接口;而处理器601可以用于调用存储器605中存储的设备控制应用程序,以实现:
通过第二套接字接收数据服务器的第一套接字发送的第一推送信息,所述第一连接服务器与所述数据服务器之间存在基于所述第一连接服务器的所述第二套接字与所述数据服务器的所述第一套接字建立的长连接,所述第一推送信息为所述数据服务器从与业务服务器之间的消息队列中获取到之后,在确定所述第一推送信息为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识,并根据注册中心的IP地址,向注册中心发送所述指定推送客户端的客户端标识,所述注册中心根据所述指定推送客户端的客户端标识确定所述指定推送客户端对应的第一传输路径信息并发送给所述数据服务器,所述数据服务器根据所述第一传输路径信息中包含的第一连接服务器标识,通过所述第一套接字向所述第二套接字发送的;
获取所述第一推送信息中携带的所述指定推送客户端的客户端标识,并根据所述指定推送客户端的客户端标识,从预先存储的多个客户端的客户端标识与各自的IP地址的对应关系中,获取所述指定推送客户端的IP地址;
根据所述指定推送客户端的IP地址,将所述第一推送信息发送给所述指定推送客户端。
应当理解,本发明实施例中所描述的推送信息的处理装置60可执行前文图2-图3所对应实施例中对所述推送信息的处理方法的描述,也可执行前文图4对应的实施例中对所述数据服务器40的描述或图5所对应实施例中对所述连接服务器50的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的推送信息的处理装置60所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图2-图3所对应实施例中对所述推送信息的处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种推送信息的处理方法,其特征在于,包括:
数据服务器从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息,并获取所述第一推送信息的信息类型,所述第一推送信息的信息类型为全量客户端推送类型或指定客户端推送类型中的一种;
在所述第一推送信息的信息类型为指定客户端推送类型的情况下,所述数据服务器获取所述第一推送信息携带的指定推送客户端的客户端标识;
所述数据服务器获取注册中心的IP地址,并根据所述注册中心的IP地址向所述注册中心发送所述指定推送客户端的客户端标识,以使所述注册中心根据所述指定推送客户端的客户端标识,从预存的客户端标识与传输路径信息的对应关系中,确定并返回所述指定推送客户端对应的第一传输路径信息;
所述数据服务器获取所述第一传输路径信息包含的第一连接服务器标识,并从多个预先与所述数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,所述数据服务器与所述第一连接服务器之间的长连接为基于所述数据服务器的第一套接字和所述第一连接服务器的第二套接字建立的;
所述数据服务器通过所述第一套接字向所述第二套接字发送所述第一推送信息,以使所述第一连接服务器在通过所述第二套接字监听到所述第一套接字发送所述第一推送信息的情况下,获取预先存储的所述指定推送客户端的IP地址,所述第一连接服务器根据所述指定推送客户端的IP地址将所述第一推送信息发送给所述指定推送客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一推送信息的信息类型为全量客户端推送类型的情况下,所述数据服务器通过所述第一套接字,将所述第一推送信息发送给所有建立了长连接的连接服务器,以使各个所述建立了长连接的连接服务器获取各自预先存储的多个推送客户端的客户端标识与各自的IP地址的对应关系中获取所述多个推送客户端的IP地址,并根据所述多个推送客户端的IP地址,将所述第一推送信息发送给对应的推送客户端。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述数据服务器根据获取所述数据服务器的IP地址以及所述数据服务器的目标端口的端口号,生成所述第一套接字;
所述数据服务器监听所述第一套接字,并在监听到所述第一连接服务器的所述第二套接字向所述第一套接字发送连接请求消息时,获取所述连接请求消息中携带的第一同步序列编码;
所述数据服务器针对所述连接请求消息生成第二同步序列编码,并将所述第一同步序列编码加一得到第一同步确认编码,生成包含所述第二同步序列编码以及所述第一同步确认编码的连接响应消息,以使所述第一连接服务器在通过所述第二套接字接收到所述数据服务器通过所述第一套接字发送的所述请求响应消息后,对所述第一同步确认编码验证后将所述第二同步序列编码加一得到第二同步确认编码,并生成包含所述第二同步确认编码的连接确认消息;
所述数据服务器通过所述第一套接字接收所述第一连接服务器通过所述第二套接字发送的所述连接确认消息,并根据所述第二同步序列编码对所述第二同步确认编码进行验证,在验证通过的情况下,完成与所述第一连接服务器之间长连接的建立。
4.一种推送信息的处理方法,其特征在于,包括:
第一连接服务器通过第二套接字接收数据服务器的第一套接字发送的第一推送信息,所述第一连接服务器与所述数据服务器之间存在基于所述第一连接服务器的所述第二套接字与所述数据服务器的所述第一套接字建立的长连接,所述第一推送信息为所述数据服务器从与业务服务器之间的消息队列中获取到之后,在确定所述第一推送信息为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识,并根据注册中心的IP地址,向注册中心发送所述指定推送客户端的客户端标识,所述注册中心根据所述指定推送客户端的客户端标识确定所述指定推送客户端对应的第一传输路径信息并发送给所述数据服务器,所述数据服务器根据所述第一传输路径信息中包含的第一连接服务器标识,通过所述第一套接字向所述第二套接字发送的;
所述第一连接服务器获取所述第一推送信息中携带的所述指定推送客户端的客户端标识,并根据所述指定推送客户端的客户端标识,从预先存储的多个客户端的客户端标识与各自的IP地址的对应关系中,获取所述指定推送客户端的IP地址;
所述第一连接服务器根据所述指定推送客户端的IP地址,将所述第一推送信息发送给所述指定推送客户端。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一连接服务器通过所述第二套接字接收所述数据服务器通过所述第一套接字发送的第二推送信息;
所述第一连接服务器在确定所述第二推送信息中未携带客户端标识的情况下,从预先存储的多个推送客户端的客户端标识与各自的IP地址的对应关系中,获取所述多个推送客户端的IP地址,并根据所述多个推送客户端的IP地址,将所述第二推送信息发送给对应的推送客户端。
6.根据权利要求4或5所述的方法,其特征在于,所述第一连接服务器通过第二套接字接收数据服务器的第一套接字发送的第一推送信息之前,还包括:
所述第一连接服务器接收负载均衡设备发送的业务连接请求,所述业务连接请求为所述负载均衡设备在接收到所述指定推送客户端发送的业务连接请求后,根据预设的负载均衡策略,从所述负载均衡设备连接的多个连接服务器中将所述第一连接服务器确定为所述指定推送客户端对应的连接服务器之后,发送给所述第一连接服务器的;
所述第一连接服务器获取所述业务连接请求中携带的所述指定推送客户端的客户端标识以及所述指定推送客户端的IP地址,并建立所述指定推送客户端的客户端标识以及所述指定推送客户端的IP地址的对应关系。
7.一种数据服务器,其特征在于,包括:
推送信息交互模块,用于从与业务服务器之间的消息队列中获取业务服务器产生的第一推送信息,并获取所述第一推送信息的信息类型,所述第一推送信息的信息类型为全量客户端推送类型或指定客户端推送类型中的一种;
客户端标识获取模块,用于在所述第一推送信息的信息类型为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识;
路径获取模块,用于获取注册中心的IP地址,并根据所述注册中心的IP地址向所述注册中心发送所述指定推送客户端的客户端标识,以使所述注册中心根据所述指定推送客户端的客户端标识从预存的客户端标识与传输路径信息的对应关系中,确定并返回所述指定推送客户端对应的第一传输路径信息;
服务器确定模块,用于获取所述第一传输路径信息包含的第一连接服务器标识,并从多个预先与所述数据服务器建立长连接的连接服务器中确定第一连接服务器标识对应的第一连接服务器,所述数据服务器与所述第一连接服务器之间的长连接为基于所述数据服务器的第一套接字和所述第一连接服务器的第二套接字建立的;
信息发送模块,通过所述第一套接字向所述第二套接字发送所述第一推送信息,以使所述第一连接服务器在通过所述第二套接字监听到所述第一套接字发送所述第一推送信息的情况下,获取预先存储的所述指定推送客户端的IP地址,所述第一连接服务器根据所述指定推送客户端的IP地址将所述第一推送信息发送给所述指定推送客户端。
8.一种连接服务器,其特征在于,包括:
消息接收模块,用于通过第二套接字接收数据服务器的第一套接字发送的第一推送信息,所述连接服务器与所述数据服务器之间存在基于所述连接服务器的所述第二套接字与所述数据服务器的所述第一套接字建立的长连接,所述第一推送信息为所述数据服务器从与业务服务器之间的消息队列中获取到之后,在确定所述第一推送信息为指定客户端推送类型的情况下,获取所述第一推送信息携带的指定推送客户端的客户端标识,并根据注册中心的IP地址,向注册中心发送所述指定推送客户端的客户端标识,所述注册中心根据所述指定推送客户端的客户端标识确定所述指定推送客户端对应的第一传输路径信息并发送给所述数据服务器,所述数据服务器根据所述第一传输路径信息中包含的连接服务器标识,通过所述第一套接字向所述第二套接字发送的;
IP地址获取模块,用于获取所述第一推送信息中携带的所述指定推送客户端的客户端标识,并根据所述指定推送客户端的客户端标识,从预先存储的多个客户端的客户端标识与各自的IP地址的对应关系中,获取所述指定推送客户端的IP地址;
消息推送模块,用于根据所述指定推送客户端的IP地址,将所述第一推送信息发送给所述指定推送客户端。
9.一种推送信息的处理装置,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-3任一项所述的方法,或执行如权利要求4~6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-3任一项所述的方法,或执行如权利要求4~6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010161137.0A CN111447185B (zh) | 2020-03-10 | 2020-03-10 | 一种推送信息的处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010161137.0A CN111447185B (zh) | 2020-03-10 | 2020-03-10 | 一种推送信息的处理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111447185A CN111447185A (zh) | 2020-07-24 |
CN111447185B true CN111447185B (zh) | 2023-07-28 |
Family
ID=71653201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010161137.0A Active CN111447185B (zh) | 2020-03-10 | 2020-03-10 | 一种推送信息的处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111447185B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111901437B (zh) * | 2020-08-04 | 2022-12-20 | 北京一起教育信息咨询有限责任公司 | 一种消息传输方法、装置和*** |
CN112367246B (zh) * | 2020-10-30 | 2022-06-17 | 深圳壹账通智能科技有限公司 | 消息推送方法、装置、电子设备及存储介质 |
CN113765774B (zh) * | 2020-11-16 | 2023-05-02 | 西安京迅递供应链科技有限公司 | 消息实时同步方法、装置、电子设备及介质 |
CN113098936A (zh) * | 2021-03-25 | 2021-07-09 | 山东浪潮通软信息科技有限公司 | 一种向移动端推送消息的方法、装置及设备 |
CN113382050B (zh) * | 2021-05-27 | 2022-11-11 | 北京皮尔布莱尼软件有限公司 | 一种消息传输方法、***、计算设备及存储介质 |
CN114039961A (zh) * | 2021-10-08 | 2022-02-11 | 中移(杭州)信息技术有限公司 | 基于WebSocket的消息推送方法、设备、服务器及存储介质 |
CN113923249A (zh) * | 2021-10-12 | 2022-01-11 | 工银科技有限公司 | 一种高性能网络长连接建立方法及装置 |
CN114979238A (zh) * | 2022-05-24 | 2022-08-30 | 浪潮软件集团有限公司 | 多客户端数据实时推送方法及*** |
CN114844897B (zh) * | 2022-07-06 | 2022-11-04 | 深圳爱换电科技有限公司 | 基于物联网的分布式动态调节长连接服务的方法及装置 |
CN115037785B (zh) * | 2022-08-12 | 2022-11-01 | 深圳市星卡软件技术开发有限公司 | 即时通讯***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580046A (zh) * | 2017-08-31 | 2018-01-12 | 北京奇虎科技有限公司 | 长连接服务***及方法 |
CN108833521A (zh) * | 2018-06-06 | 2018-11-16 | 广州视源电子科技股份有限公司 | 消息推送方法、装置、***、计算机设备和存储介质 |
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
-
2020
- 2020-03-10 CN CN202010161137.0A patent/CN111447185B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580046A (zh) * | 2017-08-31 | 2018-01-12 | 北京奇虎科技有限公司 | 长连接服务***及方法 |
CN108833521A (zh) * | 2018-06-06 | 2018-11-16 | 广州视源电子科技股份有限公司 | 消息推送方法、装置、***、计算机设备和存储介质 |
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111447185A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111447185B (zh) | 一种推送信息的处理方法及相关设备 | |
CN110311983B (zh) | 服务请求的处理方法、装置、***、电子设备及存储介质 | |
US8893004B2 (en) | User interface proxy method and system | |
CN113259479B (zh) | 一种数据处理方法以及设备 | |
CN110430292B (zh) | 邀请登录网络平台的方法、装置、电子设备及可读介质 | |
CN102077543A (zh) | 计算机网络中用于用户设备间的资源共享的方法和装置 | |
CN114398176A (zh) | 服务访问方法、装置、电子设备及存储介质 | |
CN112346751B (zh) | 应用程序的安装方法、装置、电子设备和存储介质 | |
CN103220347A (zh) | Crp云交互方法 | |
CN111885190B (zh) | 服务请求处理方法及*** | |
CN113765774A (zh) | 消息实时同步方法、装置、电子设备及介质 | |
CN109981778B (zh) | 内容分发网络的服务实现方法、装置、设备及存储介质 | |
CN111030900A (zh) | 一种免验证登录方法、装置及电子设备 | |
CN103248668B (zh) | 虚拟桌面服务参数的协商方法、装置及*** | |
CN113472598B (zh) | 云服务方法、电子设备和计算机可读存储介质 | |
WO2022188509A1 (zh) | 分布式环境下的任务处理方法、装置、电子设备和介质 | |
CN112929453B (zh) | 一种共享session数据的方法和装置 | |
CN113746909A (zh) | 网络连接方法、装置、电子设备和计算机可读存储介质 | |
CN111093281B (zh) | 分配资源的方法和装置 | |
CN111641664B (zh) | 一种爬虫设备业务请求方法、装置、***和存储介质 | |
CN113347234A (zh) | 网络信息获取方法、装置、***、计算机设备和存储介质 | |
CN115086425B (zh) | 消息传输方法、装置、程序产品、介质及电子设备 | |
CN112532534A (zh) | 一种数据传输方法、装置以及计算机可读存储介质 | |
CN110958240A (zh) | 消息订阅***及方法 | |
CN115002175B (zh) | 一种远程控制方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |