CN110932924A - 一种用于app与服务器进行通信的消息推送方法及装置 - Google Patents
一种用于app与服务器进行通信的消息推送方法及装置 Download PDFInfo
- Publication number
- CN110932924A CN110932924A CN201911031127.9A CN201911031127A CN110932924A CN 110932924 A CN110932924 A CN 110932924A CN 201911031127 A CN201911031127 A CN 201911031127A CN 110932924 A CN110932924 A CN 110932924A
- Authority
- CN
- China
- Prior art keywords
- server
- push
- app
- message
- proxy 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004891 communication Methods 0.000 title claims abstract description 14
- 238000012795 verification Methods 0.000 claims abstract description 20
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 241001522296 Erithacus rubecula Species 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000012423 maintenance Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- 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/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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于APP与服务器进行通信的消息推送方法及装置,方法包括:进入需要进行消息推送的页面;若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,并接收代理服务器返回的响应消息;代理服务器获取消息推送请求,根据负载均衡算法将消息推送请求转发至对应的推送服务器;推送服务器获取消息推送请求中的推送参数,对推送参数进行验证,验证成功后生成长连接通道ID,并对长连接通道ID与推送参数的对应关系进行保存;推送服务器根据长连接通道ID查询与之对应的消息进行推送。本发明实施例通过自建消息推送技术,从而使数据不通过第三方及其他外部服务进行传递,提高了数据安全和稳定性,方便维护。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种用于APP与服务器进行通信的消息推送方法及装置。
背景技术
传统的商户交易方式,是由顾客在商家购买商品,由现金支付或是银联卡支付商品对应的货款。随着网络技术的发展,顾客可通过扫描支付APP,支付货款,商户在商户端APP上收到服务器推送的货款支付完成信息,完成商品交易。
商户端的APP与服务器之间需要实时通信发送数据,现有技术商户端APP与服务器之间的消息推送都是通过第三方消息推送服务器进行转发,对数据传输和存储的安全性没有保障,也过度依赖第三方服务器的稳定性,一旦第三方消息推送服务出现故障,恢复和维护将变得困难。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种用于APP与服务器进行通信的消息推送方法及装置,旨在解决现有技术中商户端APP与服务器之间的消息推送方案都是第三方消息推送服务器转发,数据传输和存储的安全性低的问题。
本发明的技术方案如下:
一种用于APP与服务器进行通信的消息推送方法,所述方法包括:
检测到商户登录APP,进入需要进行消息推送的页面;
获取APP与代理服务器的长连接建立状态,若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息;
代理服务器获取消息推送请求,根据负载均衡算法将消息推送请求转发至对应的推送服务器;
推送服务器获取消息推送请求中的推送参数,对推送参数进行验证,验证成功后生成长连接通道ID,并对长连接通道ID与推送参数的对应关系进行保存;
获取代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送。
可选地,所述获取推送服务器IP及代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送后,还包括:
APP接收到推送服务器推送的消息,根据推送的消息进行推送参数验证,验证成功后,对推送的消息进行展示。
可选地,所述获取APP与代理服务器的长连接建立状态,若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息,包括:
获取APP与代理服务器的长连接建立状态;
若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息;
若APP与代理服务器未建立长连接,则与代理服务器发送建立长连接认证消息,代理服务器根据长连接认证消息与APP建立长连接,APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息。
可选地,所述推送服务器至少有两台;
所述代理服务器获取消息推送请求,根据负载均衡算法将消息推送请求转发至对应的推送服务器,包括:
所述代理服务器获取消息推送请求,根据轮循的负载均衡算法将消息推送请求转发至对应的推送服务器。
可选地,所述推送参数包括参数签名,APP登录状态以及登录账号状态信息;
所述推送服务器获取消息推送请求中的推送参数,对推送参数进行验证,验证成功后生成长连接通道ID,并对长连接通道ID与推送参数的对应关系进行保存,包括:
推送服务器获取消息推送请求中参数签名,APP登录状态以及登录账号状态信息,对参数签名、APP登录状态以及登录账号状态信息进行验证,验证成功后生成一个长连接通道ID;
获取APP对应的APP通道、商户登录的终端号及推送服务器IP,将APP通道与长连接通道ID的对应关系保存到内存中,将商户登录的终端号、长转接通道ID及推送服务器IP的对应关系存储在推送服务器对应的数据库中。
可选地,所述获取代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送,包括:
获取代理服务器转发的当前服务器IP;
若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送;
若推送服务器IP与代理服务器转发的当前服务器IP不一致,则将推送请求转发至代理服务器转发的当前服务器,推送服务器根据长连接通道ID查询与之对应的消息进行推送。
可选地,所述APP向代理服务器发送心跳消息,包括:
APP每隔第一预定时间向代理服务器发送心跳消息;
获取代理服务器读写时间,若检测到代理服务器读写时间超过第二预定时间则关闭APP与代理服务器的长连接。
本发明的另一实施例提供了一种用于APP与服务器进行通信的消息推送装置,所述装置包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的用于APP与服务器进行通信的消息推送方法。
本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的用于APP与服务器进行通信的消息推送方法。
本发明的另一种实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行上述的用于APP与服务器进行通信的消息推送方法。
有益效果:本发明公开了一种用于APP与服务器进行通信的消息推送方法及装置,相比于现有技术,本发明实施例可通过自建消息推送技术,从而使数据不通过第三方及其他外部服务进行传递,提高了数据安全和稳定性,方便维护。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明一种用于APP与服务器进行通信的消息推送方法较佳实施例的流程图;
图2为本发明一种用于APP与服务器进行通信的消息推送装置的较佳实施例的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
本发明实施例提供了一种用于APP与服务器进行通信的消息推送方法。请参阅图1,图1为本发明一种用于APP与服务器进行通信的消息推送方法较佳实施例的流程图。如图1所示,其包括步骤:
步骤S100、检测到商户登录APP,进入需要进行消息推送的页面;
步骤S200、获取APP与代理服务器的长连接建立状态,若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息;
步骤S300、代理服务器获取消息推送请求,根据负载均衡算法将消息推送请求转发至对应的推送服务器;
步骤S400、推送服务器获取消息推送请求中的推送参数,对推送参数进行验证,验证成功后生成长连接通道ID,并对长连接通道ID与推送参数的对应关系进行保存;
步骤S500、获取代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送。
具体实施时,本发明实施例的应用场景为顾客在支付后,支付消息如何推送至商户APP的过程。
商户APP登录成功,进入需要消息推送的页面,如:被扫支付,在用户扫完二维码需要实时将支付结果推送到商户收款APP页面上检测APP与服务端的长连接建立状态;
若APP与服务端已建立长连接,则向代理服务器发送心跳消息,代理服务器响应接收成功信息,APP接收服务器的响应消息;
代理服务器获取消息推送请求,根据负载均衡算法将消息转发至推送服务器;推送服务器对推送消息中的参数进行验证,验证成功后,生成长连接通道ID,将APP通道与通道ID的对应关系进行保存、以及商户终端信息、通道ID、推送服务器IP的对应关系;
获取推送服务器IP、代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则根据通道ID查询与之对应的APP通道进行消息推送。
本发明实施例主要通过自建消息推送技术来解决依赖第三方消息推送服务的各种痛点,比如:安全性、稳定性、灵活性、方便维护等;实现了数据不经过第三方及其他外部服务传递,保证安全性;通过自建立消息,保证其稳定性、灵活性、方便维护。
在进一步地实施例中,获取推送服务器IP及代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送后,还包括:
APP接收到推送服务器推送的消息,根据推送的消息进行推送参数验证,验证成功后,对推送的消息进行展示。
具体实施时,推送参数包括但不限于参数签名,APP登录状态以及登录账号状态信息。以推送消息为交易结果信息为例,APP接收到推送服务器推送的消息,进行参数签名验证,并进行交易结果展示。
进一步地,获取APP与代理服务器的长连接建立状态,若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息,包括:
获取APP与代理服务器的长连接建立状态;
若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息;
若APP与代理服务器未建立长连接,则与代理服务器发送建立长连接认证消息,代理服务器根据长连接认证消息与APP建立长连接,APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息。
具体实施时,如果当前无长连接建立,则与服务端发送建立长连接认证消息,认证消息包括但不限于登录终端号、登录TOKEN、消息类型以及参数签名;如果当前已有连接建立,则与服务端发送心跳消息,服务器响应接收成功信息;登录账户就是商户终端号,登录TOKEN是登录之后系统生成返回的一串32位的会话ID,用于后续会话操作;APP给服务器发消息,需要对消息进行区分,包括这2种消息类型;认证(AUTH)、心跳(HEART));
APP与服务器之间使用Netty技术建立和保持长连接通信,使用JSON格式数据交互。其中Netty是由JBOSS提供的一个java开源框架,现为Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty是一个基于NIO的客户、服务器端编程框架,使用Netty可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程当服务器验证完APP发来的认证参数之后,服务器就保持与APP的连接了。
例如,以下是服务器响应参数模板:
参数名称,是否必传,类型,说明;
参数名称:Code,是否必传:M,类型:String,说明:返回编码,成功:0,其他为失败;
参数名称:Message,是否必传:M,类型:String,说明:返回消息,成功:OK,其他为失败;
参数名称:Data,是否必传:C,类型:JSON,说明:返回数据,心跳消息响应不返回;
参数名称:Sign,是否必传:,C类型:String,说明:签名消息SHA256(code+message+data)。
进一步地,APP向代理服务器发送心跳消息,包括:
APP每隔第一预定时间向代理服务器发送心跳消息;
获取代理服务器读写时间,若检测到代理服务器读写时间超过第二预定时间则关闭APP与代理服务器的长连接。
具体实施时,APP在消息推送页面时,每隔5s向服务器发送一次心跳消息以维持连接(包括登录账户、通道ID、消息类型、心跳、登录TOKEN、签名),如服务端读写时间超过30秒则关闭连接;如APP退出消息推送所在的页面,停止发送心跳。
进一步地,推送服务器至少有两台;
所述代理服务器获取消息推送请求,根据负载均衡算法将消息推送请求转发至对应的推送服务器,包括:
所述代理服务器获取消息推送请求,根据轮循的负载均衡算法将消息推送请求转发至对应的推送服务器。
具体实施时,代理服务器会将请求根据轮循算法转发路由到具体的推送服务器,推送服务器由两台以上组成,以保证其高可用性。
在一些其他的实施例中,推送参数包括参数签名,APP登录状态以及登录账号状态信息;
所述推送服务器获取消息推送请求中的推送参数,对推送参数进行验证,验证成功后生成长连接通道ID,并对长连接通道ID与推送参数的对应关系进行保存,包括:
推送服务器获取消息推送请求中参数签名,APP登录状态以及登录账号状态信息,对参数签名、APP登录状态以及登录账号状态信息进行验证,验证成功后生成一个长连接通道ID;
获取APP对应的APP通道、商户登录的终端号及推送服务器IP,将APP通道与长连接通道ID的对应关系保存到内存中,将商户登录的终端号、长转接通道ID及推送服务器IP的对应关系存储在推送服务器对应的数据库中。
具体实施时,推送服务器接收到认证消息,验证参数签名(SHA256)、APP登录状态(APP传输登录TOKEN进行验证),以及登录账号状态等信息(根据TOKEN查询账户信息表);验证成功则用Java UUID生成一个长连接通道ID,并把该APP通道与通道ID的对应关系保存到内存中,同时在数据库中保存商户登录的终端号、通道ID、推送服务器IP的对应关系;商户登录的终端号是给每个接入的商户终端提前分配的终端号,本发明实施例仅在提供给商户的收款APP端使用。
例如,用户扫码支付完成后,支付网关服务器接收到银行的推送结果,并将结果通知到推送服务器,推送服务器根据订单所属的终端号查询所绑定的长连接通道ID、实际推送服务器IP。
进一步地,获取代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送,包括:
获取代理服务器转发的当前服务器IP;
若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送;
若推送服务器IP与代理服务器转发的当前服务器IP不一致,则将推送请求转发至代理服务器转发的当前服务器,推送服务器根据长连接通道ID查询与之对应的消息进行推送。
具体实施时,如果推送服务器IP与代理服务器转发过来的当前服务器IP一致,则APP是与当前服务器建立的长连接,此时再根据通道ID在内存中查询与之对应的APP通道进行消息推送,如果推送服务器IP与代理服务器转发过来的当前服务器IP不一致,则把请求再直接转发到该IP所在内部服务器,然后执行逻辑一致。
需要说明的是,在上述各个实施例中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,变可以交换执行等等。
本发明另一实施例提供一种用于APP与服务器进行通信的消息推送装置,如图2所示,装置10包括:
一个或多个处理器110以及存储器120,图2中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图2中以通过总线连接为例。
处理器110用于完成,装置10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的用于APP与服务器进行通信的消息推送方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行装置10的各种功能应用以及数据处理,即实现上述方法实施例中的用于APP与服务器进行通信的消息推送方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据装置10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至装置10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的用于APP与服务器进行通信的消息推送方法,例如,执行以上描述的图1中的方法步骤S100至步骤S500。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S500。
作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明丽非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的用于APP与服务器进行通信的消息推送方法。例如,执行以上描述的图1中的方法步骤S100至步骤S500。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分的方法。
除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
已经在本文中在本说明书和附图中描述的内容包括能够提供用于APP与服务器进行通信的消息推送方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。
Claims (10)
1.一种用于APP与服务器进行通信的消息推送方法,其特征在于,所述方法包括:
检测到商户登录APP,进入需要进行消息推送的页面;
获取APP与代理服务器的长连接建立状态,若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息;
代理服务器获取消息推送请求,根据负载均衡算法将消息推送请求转发至对应的推送服务器;
推送服务器获取消息推送请求中的推送参数,对推送参数进行验证,验证成功后生成长连接通道ID,并对长连接通道ID与推送参数的对应关系进行保存;
获取代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送。
2.根据权利要求1所述的用于APP与服务器进行通信的消息推送方法,其特征在于,所述获取推送服务器IP及代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送后,还包括:
APP接收到推送服务器推送的消息,根据推送的消息进行推送参数验证,验证成功后,对推送的消息进行展示。
3.根据权利要求1所述用于APP与服务器进行通信的消息推送方法,其特征在于,所述获取APP与代理服务器的长连接建立状态,若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息,包括:
获取APP与代理服务器的长连接建立状态;
若APP与代理服务器已建立长连接,则APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息;
若APP与代理服务器未建立长连接,则与代理服务器发送建立长连接认证消息,代理服务器根据长连接认证消息与APP建立长连接,APP向代理服务器发送心跳消息,接收代理服务器返回的心跳消息接收成功的响应消息。
4.根据权利要1所述的用于APP与服务器进行通信的消息推送方法,其特征在于,所述推送服务器至少有两台;
所述代理服务器获取消息推送请求,根据负载均衡算法将消息推送请求转发至对应的推送服务器,包括:
所述代理服务器获取消息推送请求,根据轮循的负载均衡算法将消息推送请求转发至对应的推送服务器。
5.根据权利要求1所述的用于APP与服务器进行通信的消息推送方法,其特征在于,所述推送参数包括参数签名,APP登录状态以及登录账号状态信息;
所述推送服务器获取消息推送请求中的推送参数,对推送参数进行验证,验证成功后生成长连接通道ID,并对长连接通道ID与推送参数的对应关系进行保存,包括:
推送服务器获取消息推送请求中参数签名,APP登录状态以及登录账号状态信息,对参数签名、APP登录状态以及登录账号状态信息进行验证,验证成功后生成一个长连接通道ID;
获取APP对应的APP通道、商户登录的终端号及推送服务器IP,将APP通道与长连接通道ID的对应关系保存到内存中,将商户登录的终端号、长转接通道ID及推送服务器IP的对应关系存储在推送服务器对应的数据库中。
6.根据权利要求1所述的用于APP与服务器进行通信的消息推送方法,其特征在于,所述获取代理服务器转发的当前服务器IP,若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送,包括:
获取代理服务器转发的当前服务器IP;
若推送服务器IP与代理服务器转发的当前服务器IP一致,则推送服务器根据长连接通道ID查询与之对应的消息进行推送;
若推送服务器IP与代理服务器转发的当前服务器IP不一致,则将推送请求转发至代理服务器转发的当前服务器,推送服务器根据长连接通道ID查询与之对应的消息进行推送。
7.根据权利要求1所述的用于APP与服务器进行通信的消息推送方法,其特征在于,所述APP向代理服务器发送心跳消息,包括:
APP每隔第一预定时间向代理服务器发送心跳消息;
获取代理服务器读写时间,若检测到代理服务器读写时间超过第二预定时间则关闭APP与代理服务器的长连接。
8.一种用于APP与服务器进行通信的消息推送装置,其特征在于,所述装置包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的用于APP与服务器进行通信的消息推送方法。
9.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-7任一项所述的用于APP与服务器进行通信的消息推送方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行权利要求1-7任一项所述的用于APP与服务器进行通信的消息推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911031127.9A CN110932924B (zh) | 2019-10-28 | 2019-10-28 | 一种用于app与服务器进行通信的消息推送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911031127.9A CN110932924B (zh) | 2019-10-28 | 2019-10-28 | 一种用于app与服务器进行通信的消息推送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110932924A true CN110932924A (zh) | 2020-03-27 |
CN110932924B CN110932924B (zh) | 2021-03-23 |
Family
ID=69849565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911031127.9A Active CN110932924B (zh) | 2019-10-28 | 2019-10-28 | 一种用于app与服务器进行通信的消息推送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110932924B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112770275A (zh) * | 2020-12-29 | 2021-05-07 | 杭州涂鸦信息技术有限公司 | 一种消息推送方法、系统及相关设备 |
CN112927020A (zh) * | 2021-03-11 | 2021-06-08 | 北京有竹居网络技术有限公司 | 信息处理方法、装置及设备 |
CN113452777A (zh) * | 2021-06-25 | 2021-09-28 | 北京奇艺世纪科技有限公司 | 一种消息推送方法及装置 |
CN113472846A (zh) * | 2021-05-28 | 2021-10-01 | 乐融致新电子科技(天津)有限公司 | 消息处理方法、装置、设备和计算机可读存储介质 |
CN113542408A (zh) * | 2021-07-14 | 2021-10-22 | 首约科技(北京)有限公司 | 一种司机和乘客交互消息的方法 |
CN114760297A (zh) * | 2022-03-16 | 2022-07-15 | 广联达科技股份有限公司 | 一种消息推送方法、系统、设备及可读存储介质 |
CN115114044A (zh) * | 2021-03-19 | 2022-09-27 | 京东方科技集团股份有限公司 | 消息推送方法、装置、设备和介质 |
CN115834679A (zh) * | 2022-11-23 | 2023-03-21 | 中国电信股份有限公司 | 通知消息推送方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024879A1 (en) * | 2002-07-30 | 2004-02-05 | Dingman Christopher P. | Method and apparatus for supporting communications between a computing device within a network and an external computing device |
CN102209302A (zh) * | 2011-07-07 | 2011-10-05 | 深圳市金立通信设备有限公司 | 一种实现移动终端信息推送的系统及方法 |
CN102868759A (zh) * | 2012-09-28 | 2013-01-09 | 方正国际软件有限公司 | 服务器控制浏览器界面数据刷新的系统及其方法 |
CN102904903A (zh) * | 2012-11-02 | 2013-01-30 | 北京奇虎科技有限公司 | 通信系统和通信方法 |
CN103095819A (zh) * | 2013-01-04 | 2013-05-08 | 微梦创科网络科技(中国)有限公司 | 推送数据信息的方法及数据信息推送系统 |
CN103491512A (zh) * | 2012-06-12 | 2014-01-01 | 腾讯科技(深圳)有限公司 | 消息推送的实现方法和装置 |
CN104616116A (zh) * | 2015-02-13 | 2015-05-13 | 武汉金锐达科技有限公司 | 一种银行客户服务系统及方法 |
CN104767775A (zh) * | 2014-01-06 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 网页应用消息推送方法及系统 |
CN108667914A (zh) * | 2018-04-24 | 2018-10-16 | 梅泰诺(北京)物联科技有限公司 | 一种信息推送方法、装置、系统及电子设备 |
-
2019
- 2019-10-28 CN CN201911031127.9A patent/CN110932924B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024879A1 (en) * | 2002-07-30 | 2004-02-05 | Dingman Christopher P. | Method and apparatus for supporting communications between a computing device within a network and an external computing device |
CN102209302A (zh) * | 2011-07-07 | 2011-10-05 | 深圳市金立通信设备有限公司 | 一种实现移动终端信息推送的系统及方法 |
CN103491512A (zh) * | 2012-06-12 | 2014-01-01 | 腾讯科技(深圳)有限公司 | 消息推送的实现方法和装置 |
CN102868759A (zh) * | 2012-09-28 | 2013-01-09 | 方正国际软件有限公司 | 服务器控制浏览器界面数据刷新的系统及其方法 |
CN102904903A (zh) * | 2012-11-02 | 2013-01-30 | 北京奇虎科技有限公司 | 通信系统和通信方法 |
CN103095819A (zh) * | 2013-01-04 | 2013-05-08 | 微梦创科网络科技(中国)有限公司 | 推送数据信息的方法及数据信息推送系统 |
CN104767775A (zh) * | 2014-01-06 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 网页应用消息推送方法及系统 |
CN104616116A (zh) * | 2015-02-13 | 2015-05-13 | 武汉金锐达科技有限公司 | 一种银行客户服务系统及方法 |
CN108667914A (zh) * | 2018-04-24 | 2018-10-16 | 梅泰诺(北京)物联科技有限公司 | 一种信息推送方法、装置、系统及电子设备 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112770275A (zh) * | 2020-12-29 | 2021-05-07 | 杭州涂鸦信息技术有限公司 | 一种消息推送方法、系统及相关设备 |
CN112927020A (zh) * | 2021-03-11 | 2021-06-08 | 北京有竹居网络技术有限公司 | 信息处理方法、装置及设备 |
CN115114044A (zh) * | 2021-03-19 | 2022-09-27 | 京东方科技集团股份有限公司 | 消息推送方法、装置、设备和介质 |
CN113472846A (zh) * | 2021-05-28 | 2021-10-01 | 乐融致新电子科技(天津)有限公司 | 消息处理方法、装置、设备和计算机可读存储介质 |
CN113472846B (zh) * | 2021-05-28 | 2023-04-28 | 乐融致新电子科技(天津)有限公司 | 消息处理方法、装置、设备和计算机可读存储介质 |
CN113452777A (zh) * | 2021-06-25 | 2021-09-28 | 北京奇艺世纪科技有限公司 | 一种消息推送方法及装置 |
CN113452777B (zh) * | 2021-06-25 | 2022-11-04 | 北京奇艺世纪科技有限公司 | 一种消息推送方法及装置 |
CN113542408A (zh) * | 2021-07-14 | 2021-10-22 | 首约科技(北京)有限公司 | 一种司机和乘客交互消息的方法 |
CN113542408B (zh) * | 2021-07-14 | 2024-04-19 | 首约科技(北京)有限公司 | 一种司机和乘客交互消息的方法 |
CN114760297A (zh) * | 2022-03-16 | 2022-07-15 | 广联达科技股份有限公司 | 一种消息推送方法、系统、设备及可读存储介质 |
CN115834679A (zh) * | 2022-11-23 | 2023-03-21 | 中国电信股份有限公司 | 通知消息推送方法及系统 |
CN115834679B (zh) * | 2022-11-23 | 2024-06-07 | 中国电信股份有限公司 | 通知消息推送方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110932924B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110932924B (zh) | 一种用于app与服务器进行通信的消息推送方法及装置 | |
US11798072B1 (en) | System and method for programmatically accessing data | |
US12067537B2 (en) | System and method for facilitating programmatic verification of transactions | |
TWI716056B (zh) | 身份認證、號碼保存和發送、綁定號碼方法、裝置及設備 | |
US9582799B2 (en) | Token based transaction authentication | |
RU2563163C2 (ru) | Обработка аутентификации удаленной переменной | |
US8364587B2 (en) | Systems and methods for financial account access for a mobile device via a gateway | |
US12021842B2 (en) | Headless browser system with virtual API | |
US11868920B2 (en) | Authentication platform for pin debit issuers | |
CN113115285B (zh) | 信息处理方法及装置 | |
CN105450592A (zh) | 安全校验方法、装置、服务器及终端 | |
EP3007365A1 (en) | Secure information interaction method for electronic resources transfer | |
CN110942297A (zh) | 一种用于移动端的二维码支付方法及系统 | |
CN103139758B (zh) | 移动Socket类应用系统、服务器、方法和WAP网关 | |
KR20090000787A (ko) | 가상계좌를 이용한 무선단말 간 금융거래 방법 및 시스템과이를 위한 기록매체 | |
TWI661707B (zh) | 安全性資訊交互方法、終端及電腦程式產品 | |
CN104978660A (zh) | 一种信息处理方法及系统 | |
WO2023250521A1 (en) | Methods and systems for pre-verification of cryptocurrency transfers using test transactions | |
CN118037300A (zh) | 身份验证方法、装置、存储介质以及产品 | |
WO2019018918A1 (en) | SYSTEMS AND METHODS FOR AUTHORIZING PAYMENTS USING PAYMENT CARDS | |
TWM554592U (zh) | 行動網銀交易認證系統 | |
AU2015200688A1 (en) | Token based transaction authentication | |
KR20090047404A (ko) | 금융거래 시스템 | |
KR20090048409A (ko) | 통신사 제휴를 통한 무선단말 간 금융거래 방법 | |
KR20090060233A (ko) | 무선단말 간 금융거래 방법 |
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 |