CN116319947B - 一种app前后台切换中状态信息的获取方法及装置 - Google Patents
一种app前后台切换中状态信息的获取方法及装置 Download PDFInfo
- Publication number
- CN116319947B CN116319947B CN202310559679.7A CN202310559679A CN116319947B CN 116319947 B CN116319947 B CN 116319947B CN 202310559679 A CN202310559679 A CN 202310559679A CN 116319947 B CN116319947 B CN 116319947B
- Authority
- CN
- China
- Prior art keywords
- information
- app
- socket
- state
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 230000004044 response Effects 0.000 claims abstract description 74
- 230000008859 change Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明提供一种APP前后台切换中状态信息的获取方法及装置,方法应用于APP,方法包括:在APP从后台状态切换至前台状态的情况下,向第一服务器发送HTTP请求;接收来自于第一服务器的HTTP请求响应信息,其中,HTTP请求响应信息中携带待处理的第一socket信息;对待处理的第一socket信息进行处理;向第一服务器返回处理结果。由此,可避免APP前后台切换场景下Socket消息的丢失,保障socket消息的正确性和完整性,避免socket消息丢失所引起的APP的显示界面中,出现卡顿等现象,从而提高用户的使用体验。
Description
技术领域
本发明实施例涉及移动终端技术领域,尤其涉及一种APP前后台切换中状态信息的获取方法及装置。
背景技术
当移动端APP切换至后台状态的情况下,易造成socket消息的丢失。目前主流的解决方案可分为:强制保活方案和快照恢复方案。强制保活方案为:让后台的Socket服务持续正常处理消息,当后台APP被系统杀死之后,再次启动APP进行正常的建立连接、接收消息、发送消息等相关操作。快照恢复方案为:当APP返回前台时,服务端将当前页面所涉及的各类元素的终态消息传递给APP,由APP自己处理退至后台到返回前台这一时间段内,相关元素状态的变化逻辑。
强制保活方案存在的缺点是:该方案仅针对于部分Android平台有效,而对于 iOS平台则无效(iOS 平台仅支持语音、定位等有限的后台逻辑处理,无法支持业务逻辑的socket持续连接及处理);该方案对于部分对后台服务严格限制的Android平台同样无效。也就是说,该方案的应用范围较窄。
快照恢复方案存在的缺点是:当APP对应的目标对象(例如:某款游戏APP内的虚拟人物A)的状态存在连续性地复杂变化,且涉及多个服务端的服务时,由于多个服务端彼此之间无法同步状态,从而造成中间过程中,需要处理的元素状态的变化逻辑丢失。
发明内容
本发明实施例提供一种,以解决相关技术中,在APP切换至后台状态时,强制保活方案和快照恢复方案均无法有效避免socket信息丢失的问题。
为解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供一种APP前后台切换中状态信息的获取方法,所述方法应用于APP,所述方法包括:
在所述APP从后台状态切换至前台状态的情况下,向第一服务器发送HTTP请求;其中,所述HTTP请求用于获取在所述APP处于后台状态期间,所述第一服务器产生的与所述APP相关的待处理的第一socket信息;所述第一socket信息为当所述APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息;
接收来自于所述第一服务器的HTTP请求响应信息,其中,所述HTTP请求响应信息中携带所述待处理的第一socket信息;
对所述待处理的第一socket信息进行处理;
向所述第一服务器返回处理结果。
可选的,在接收来自于所述第一服务器的HTTP请求响应信息之前,所述方法还包括:
接收并缓存所述第一服务器发送的待处理的第二socket信息;其中,所述第二socket信息为在所述APP从后台状态切换至前台状态的情况下,所述第一服务器产生并发送的socket信息;
在接收来自于所述第一服务器的HTTP请求响应信息之后,所述方法还包括:
将所述待处理的第一socket信息和所述待处理的第二socket信息合并处理;
向所述第一服务器返回合并处理的处理结果。
可选的,在所述APP从后台状态切换至前台状态的情况下,所述方法还包括:
接收第二服务器发送的第三socket信息;
向所述第二服务器返回响应信息;其中,所述响应信息用于指示所述APP已成功接收到所述第三socket信息;所述第三socket信息为在所述APP内,当一目标对象的状态发生第二类型的变化时,所对应的状态信息。
可选的,所述方法还包括:
在所述APP从前台状态切换至后台状态的情况下,向服务器发送第一socket通知信息,其中,所述第一socket通知信息用于指示所述APP已切换至后台状态;
在所述APP从后台状态切换至前台状态的情况下,向所述服务器发送第二socket通知信息,其中,所述第二socket通知信息用于指示所述APP已切换至前台状态;其中,所述服务器包括所述第一服务器和/或所述第二服务器。
第二方面,本发明实施例提供一种APP前后台切换中状态信息的获取方法,所述方法应用于第一服务器,所述方法包括:
向APP发送待处理的第一socket信息;
若未接收到来自所述APP的待处理的第一socket信息的响应信息,则确定所述待处理的第一socket信息未发送成功,在本地缓存所述待处理的第一socket信息;
接收来自所述APP的HTTP请求;其中,所述HTTP请求是所述APP在从后台状态切换至前台状态的情况下发送的,用于获取所述第一服务器本地缓存的所述待处理的第一socket信息;
向所述APP发送HTTP请求响应信息,所述HTTP请求响应信息中携带有所述待处理的第一socket信息;
接收所述APP返回的所述待处理的第一socket信息的处理结果;
其中,所述待处理的第一socket信息为当所述APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息。
可选的,在向所述APP发送HTTP请求响应信息之前,所述方法还包括:
向所述APP发送待处理的第二socket信息;其中,所述待处理的第二socket信息为在所述APP从后台状态切换至前台状态的情况下,所述第一服务器产生并发送的状态信息;
在向所述APP发送HTTP请求响应信息之后,所述方法还包括:
接收所述APP返回的所述待处理的第二socket信息的处理结果。
第三方面,本发明实施例提供一种APP前后台切换中状态信息的获取方法,所述方法应用于第二服务器,所述方法包括:
接收第一socket通知信息,其中,所述第一socket通知信息用于指示APP已切换至后台状态;
停止发送第三socket信息;其中,所述第三socket信息为当所述APP对应的目标对象的状态发生第二类型的变化时,所对应的状态信息。
可选的,所述方法还包括:
接收第二socket通知信息,其中,所述第二socket通知信息用于指示所述APP已切换至前台状态;
向所述APP发送所述第三socket信息;
接收所述APP返回的第三socket信息的响应信息,其中,所述第三socket信息的响应信息用于指示所述APP已成功接收到所述第三socket信息。
第四方面,本发明实施例提供一种APP前后台切换中状态信息的获取装置,所述装置应用于APP,所述装置包括:
第一发送模块,用于在所述APP从后台状态切换至前台状态的情况下,向第一服务器发送HTTP请求;其中,所述HTTP请求用于获取在所述APP处于后台状态期间,所述第一服务器产生的与所述APP相关的待处理的第一socket信息;所述第一socket信息为当所述APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息;
第一接收模块,用于接收来自于所述第一服务器的HTTP请求响应信息,其中,所述HTTP请求响应信息中携带所述待处理的第一socket信息;
处理模块,用于对所述待处理的第一socket信息进行处理;
返回模块,用于向所述第一服务器返回处理结果。
第五方面,本发明实施例提供一种APP前后台切换中状态信息的获取装置,所述装置应用于第一服务器,所述装置包括:
第二发送模块,用于向APP发送待处理的第一socket信息;
缓存模块,用于若未接收到来自所述APP的待处理的第一socket信息的响应信息,则确定所述待处理的第一socket信息未发送成功,在本地缓存所述待处理的第一socket信息;
第二接收模块,用于接收来自所述APP的HTTP请求;其中,所述HTTP请求是所述APP在从后台状态切换至前台状态的情况下发送的,用于获取所述第一服务器本地缓存的所述待处理的第一socket信息;
第三发送模块,用于向所述APP发送HTTP请求响应信息,所述HTTP请求响应信息中携带有所述待处理的第一socket信息;
第三接收模块,用于接收所述APP返回的所述待处理的第一socket信息的处理结果;
其中,所述待处理的第一socket信息为当所述APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息。
第六方面,本发明实施例提供一种APP前后台切换中状态信息的获取装置,所述装置应用于第二服务器,所述装置包括:
第四接收模块,用于接收第一socket通知信息,其中,所述第一socket通知信息用于指示APP已切换至后台状态;
第四发送模块,用于停止发送第三socket信息;其中,所述第三socket信息为当所述APP对应的目标对象的状态发生第二类型的变化时,所对应的状态信息。
第七方面,本发明实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的APP前后台切换中状态信息的获取方法的步骤;或者,所述程序被所述处理器执行时实现如第二方面所述的APP前后台切换中状态信息的获取方法的步骤;或者,所述程序被所述处理器执行时实现如第三方面所述的APP前后台切换中状态信息的获取方法的步骤。
第八方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的APP前后台切换中状态信息的获取方法的步骤;或者,所述计算机程序被所述处理器执行时实现如第二方面所述的APP前后台切换中状态信息的获取方法的步骤;或者,所述计算机程序被所述处理器执行时实现如第三方面所述的APP前后台切换中状态信息的获取方法的步骤。
由此,本发明实施例综合利用HTTP服务以及消息缓存服务,并通过对socket进行分类,从而实现当APP退至后台,但未发生Socket连接完全断开的情况下,至APP再次返回前台的这段时间内,Socket消息的正确处理(尤其针对于第一socket信息),以避免APP前后台切换场景下Socket消息的丢失,保障socket消息的正确性和完整性,避免socket消息丢失所引起的APP的显示界面中,出现卡顿等现象(例如:在用户进行游戏时,出现画面的卡顿或游戏中,虚拟人物的状态的不连贯),从而提高用户的使用体验。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种APP前后台切换中状态信息的获取方法的流程图;
图2为本发明实施例提供的一种APP前后台切换中状态信息的获取方法的流程图;
图3为本发明实施例提供的一种APP前后台切换中状态信息的获取方法的流程图;
图4为本发明实施例提供的一种APP前后台切换中状态信息的获取方法的流程图;
图5为本发明实施例提供的一种APP前后台切换中状态信息的获取装置的结构框图;
图6为本发明实施例提供的一种APP前后台切换中状态信息的获取装置的结构框图;
图7为本发明实施例提供的一种APP前后台切换中状态信息的获取装置的结构框图;
图8为本发明实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明下述实施例所示方法,涉及三个执行主体间的信息交互流程,即APP(客户端)、第一服务器和第二服务器。
下面分别从不同执行主体的角度,对本发明实施例所示的一种APP前后台切换中状态信息的获取方法进行说明。
图1示出了根据本发明实施例所示的一种APP前后台切换中状态信息的获取方法,方法应用于APP,如图1所示,方法包括:
步骤S101、在APP从后台状态切换至前台状态的情况下,向第一服务器发送HTTP请求;
步骤S102、接收来自于第一服务器的HTTP请求响应信息;
其中,HTTP请求响应信息中携带待处理的第一socket信息;
步骤S103、对待处理的第一socket信息进行处理;
步骤S104、向第一服务器返回处理结果。
其中,第一服务器可理解为用于产生并发送第一socket信息、第二socket信息的服务器,且第一服务器可用于提供第一socket信息、第二socket信息的处理服务。第二服务器可理解为用于产生并发送第三socket信息的服务器,且第二服务器可用于提供第三socket信息的处理服务。第一socket信息和第二socket信息均是当APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息,二者的区别在于,第一socket信息是在APP处于后台状态期间时,第一服务器产生的状态信息,而第二socket信息是APP从后台切换至前台状态的情况下,第一服务器产生的状态信息。而第三socket信息则是当APP对应的目标对象的状态发生第二类型的变化时,所对应的状态信息,且第三socket信息是由第二服务器所产生并发送的,且第二服务器在获知到APP切换至后台状态的情况下,停止发送第三socket信息。
需要说明的是,目标对象可以包括:人物和/或事件。且上述的第一类型、第二类型可由用户根据实际需要进行设置,通常情况下,第一类型的变化是指:若某一APP(游戏类APP)处于后台状态下,该APP内的某一虚拟人物,被他人搀扶或者乘坐交通工具移动时,可能会发生的一些行为上的改变,如:停止移动、转弯、坐下、站起来等操作;若某一APP处于后台状态下,其他用户给该APP对应的后台用户发送文本、图片信息或者持续性动作操作(例如:烟花、弹幕等);若某一APP处于后台状态下,某个持续性的服务(如:后台语音的变化状态),可见,第一类型的变化通常指目标对象在预设时间段内(特定时间段内)发生持续性的且复杂的变化,其中,可选的,复杂的变化可理解为在预设时间段内,发生多次变化(至少一次变化)。而与之相对的,第二类型的变化通常指目标对象在预设时间段内,仅发生一次变化。例如:APP内某一虚拟人物从A点直线行走至B点,或者人物姓名、年龄、系统内的时间、场景状态、天气状态等属性值的变化(而非持续性的变化)。
其中,HTTP请求用于获取在APP处于后台状态期间,第一服务器产生的与APP相关的待处理的第一socket信息;第一socket信息为当APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息。
在一种可能的实现方式中,在接收来自于第一服务器的HTTP请求响应信息之前,方法还包括:接收并缓存第一服务器发送的待处理的第二socket信息;其中,第二socket信息为在APP从后台状态切换至前台状态的情况下,第一服务器产生并发送的socket信息;在接收来自于第一服务器的HTTP请求响应信息之后,方法还包括:将待处理的第一socket信息和待处理的第二socket信息合并处理;向第一服务器返回合并处理的处理结果。也就是说,在向第一服务器发送HTTP请求,但还未接收到HTTP请求响应期间,如果第一服务器继续产生第二socket信息(此时,APP已切换至前台状态),则可以先接收并缓存第二socket信息,但暂时不对其进行处理,直至收到HTTP请求响应后(也就是收到待处理的第一socket信息后),对二者进行合并处理,并向第一服务器返回合并处理的处理结果。在具体的应用场景中,对二者进行合并后,将二者发送至业务层,由业务层对二者进行处理,并在处理完成后,将处理结果同步至第一服务器(第一服务器可以为多个,例如:将游戏APP中,A、B人物的状态均发送至A人物对应的服务器,均发送至B人物对应的服务器)。
需要说明的是,上述可能的实现方式中,使用HTTP请求来获取第一服务器中,缓存的待处理的第一socket信息,是为了确保能够正确区分第一socket信息和第二socket信息,同时减少服务端(第一服务器)可能产生的一些拥塞逻辑,避免信息之间的相互干扰和拥堵。
可选的,第一服务器也可以将继续产生的第二socket信息缓存在本地,在等待APP处理完成HTTP请求响应所携带的第一socket信息,并将处理结果返回至自身(第一服务器)之后,再将这部分缓存的第二socket信息,返回至APP。
在一种可能的实现方式中,如果APP处于前台状态下,若接收到第一服务器发送的socket信息,则返回响应信息,以告知第一服务器,成功接收到socket信息,并对socket信息进行处理,在处理完成后,将处理结果发送至一个或多个第一服务器。
需要说明的是,对于待处理的第一socket信息,由于其为当APP对应的目标对象的状态发生第二类型的变化时,所对应的状态信息,因此,APP需要关注该类消息的中间变化过程。无论APP处于后台状态还是前台状态,只要第一服务器产生了socket信息,就需要将其发送给APP(在以第一服务器为执行主体的实施例中进行说明),若此时APP处于后台状态,无法对socket信息进行处理时,则第一服务器可先缓存所产生的socket信息(待处理的第一socket信息),并在APP能够处理socket信息时(此时,APP已切换至前台状态),将待处理的第一socket信息返回至APP。
在一种可能的实现方式中,在APP从后台状态切换至前台状态的情况下,方法还包括:接收第二服务器发送的第三socket信息;向第二服务器返回响应信息;其中,响应信息用于指示APP已成功接收到第三socket信息;第三socket信息为在APP内,当一目标对象的状态发生第二类型的变化时,所对应的状态信息。
如上所述,第二类型的变化通常指目标对象在预设时间段内,仅发生一次变化。例如:APP内某一虚拟人物从A点直线行走至B点,或者人物姓名、年龄、系统内的时间、场景状态、天气状态等属性值的变化(而非持续性的变化)。在APP从后台切换至前台状态的情况下,APP可接收第二服务器发送的第三socket信息,并告知第二服务器已成功接收到第三socket信息。而可理解的是,当APP切换至后台状态下,第二服务器获知到APP已切换至后台状态,则第二服务器停止发送第三socket信息(在以第二服务器为执行主体的实施例中进行说明)。
在一种可能的实现方式中,在APP从前台状态切换至后台状态的情况下,向服务器发送第一socket通知信息,其中,第一socket通知信息用于指示APP已切换至后台状态;在APP从后台状态切换至前台状态的情况下,向服务器发送第二socket通知信息,其中,第二socket通知信息用于指示APP已切换至前台状态;其中,服务器包括第一服务器和/或第二服务器。
也就是说,在APP进行前后台状态的切换时,均会告知服务器自身的状态,但区别在于,第二服务器会在获知到APP切换至后台状态时,停止发送第三socket信息,而第一服务器则无论APP处于后台状态还是前台状态,只要其产生了socket信息,就需要将其发送给APP(在以第一服务器为执行主体的实施例中进行说明),但若发送未成功(APP处于后台状态),则先在本地缓存socket信息,待APP能对socket信息进行处理时(切换至前台状态)再进行socket信息的发送。
由此,本发明实施例综合利用HTTP服务以及消息缓存服务,并通过对socket进行分类,从而实现当APP退至后台,但未发生Socket连接完全断开的情况下,至APP再次返回前台的这段时间内,Socket消息的正确处理(尤其针对于第一socket信息),以避免APP前后台切换场景下Socket消息的丢失,保障socket消息的正确性和完整性,避免socket消息丢失所引起的APP的显示界面中,出现卡顿等现象(例如:在用户进行游戏时,出现画面的卡顿或游戏中,虚拟人物的状态的不连贯),从而提高用户的使用体验。
图2示出了根据本发明实施例所示的一种APP前后台切换中状态信息的获取方法,方法应用于第一服务器,如图2所示,方法包括:
步骤S201、向APP发送待处理的第一socket信息;
步骤S202、若未接收到来自APP的待处理的第一socket信息的响应信息,则确定待处理的第一socket信息未发送成功,在本地缓存待处理的第一socket信息;
步骤S203、接收来自APP的HTTP请求;
其中,HTTP请求是APP在从后台状态切换至前台状态的情况下发送的,用于获取第一服务器本地缓存的待处理的第一socket信息;
步骤S204、向APP发送HTTP请求响应信息;
其中,HTTP请求响应信息中携带有待处理的第一socket信息;
步骤S205、接收APP返回的待处理的第一socket信息的处理结果;
其中,待处理的第一socket信息为当APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息。
在一种可能的实现方式中,在向APP发送HTTP请求响应信息之前,方法还包括:向APP发送待处理的第二socket信息;其中,待处理的第二socket信息为在APP从后台状态切换至前台状态的情况下,第一服务器产生并发送的状态信息;在向APP发送HTTP请求响应信息之后,方法还包括:接收APP返回的待处理的第二socket信息的处理结果。
图2所示的实施例与图1所示的实施例的执行主体不同,但具体内容相同,在此不再赘述。需要说明的是,无论APP是切换至前台状态,还是后台状态,第一服务器均需向APP发送待处理的第一socket信息,并通过是否接收到来自APP的待处理的第一socket信息的响应信息来判断待处理的第一socket信息是否发送成功,如果发送成功,则在APP对待处理的第一socket信息进行处理后,第一服务器接收APP返回的待处理的第一socket信息的处理结果;若未接收到来自APP的待处理的第一socket信息的响应信息,则确定待处理的第一socket信息未发送成功,第一服务器在本地缓存待处理的第一socket信息,由此,可避免待处理的第一socket信息的丢失,所导致第一socket信息的不完整而影响用户的使用体验。另外,第一服务器向APP发送HTTP请求响应信息,HTTP请求响应信息中携带有待处理的第一socket信息之后,第一服务器也可以清理相关缓存,以避免消息的冗余堆积,提高响应速度。
图3示出了根据本发明实施例的一种APP前后台切换中状态信息的获取方法,方法应用于第二服务器,方法包括:
步骤S301、接收第一socket通知信息;
其中,第一socket通知信息用于指示APP已切换至后台状态;
步骤S302、停止发送第三socket信息;
其中,第三socket信息为当APP对应的目标对象的状态发生第二类型的变化时,所对应的状态信息。
在一种可能的实现方式中,第二服务器接收第二socket通知信息;其中,第二socket通知信息用于指示APP已切换至前台状态;向APP发送第三socket信息;接收APP返回的第三socket信息的响应信息,其中,第三socket信息的响应信息用于指示APP已成功接收到第三socket信息。
图3所示的实施例与图1所示的实施例的执行主体不同,但具体内容相同,在此不再赘述。需要说明的是,APP并不关注第三socket信息的中间变化过程,而第二服务器不关注第三socket信息在APP的处理结果。且仅在APP明确可以处理第三socket信息时,第二服务器才向APP发送第三socket信息,在APP切换至后台状态(APP不能处理第三socket信息)时,第二服务器就停止发送第三socket信息。另外,如果APP处于前台状态下,收到了第三socket信息,则告知第二服务器,第三socket信息已成功送达,至于APP(客户端)是否处理以及处理的结果等,无需同步至第二服务器(服务端)。而在APP由后台状态切换至前台状态时,第二服务器恢复向APP发送第三socket信息,也就是说,当APP收到最新的第三socket信息时,直接对最新的第三socket信息进行处理。
综上所述,本发明实施例将原有的Socket信息根据其所对应的目标对象的状态的变化类型的不同(APP所对应的目标对象,例如:某一游戏APP内的虚拟人物A)进行分类,并针对不同的分类,对应调整客户端及服务端的处理逻辑。其中,第一服务器的处理逻辑为缓存第一socket信息,并补充HTTP相关处理逻辑,客户端(APP)的处理逻辑为正确区分第一socket信息和第二socket信息,并合并第一socket信息和第二socket信息,将其发送给业务层。从而避免APP前后台切换场景下Socket消息的丢失,保障socket消息的正确性和完整性,避免socket消息丢失所引起的APP的显示界面中,出现卡顿等现象(例如:在用户进行游戏时,出现画面的卡顿或游戏中,虚拟人物的状态的不连贯),从而提高用户的使用体验。
图4示出了根据本发明实施例的一种APP前后台切换中状态信息的获取方法的流程图。需要说明的是,图4中移动端APP,即代表APP,B类消息为待处理的第一socket信息,A类消息为第三socket信息,服务A和服务B分别为第二服务器所提供的服务和第一服务器所提供的服务。
由此,本发明实施例综合利用HTTP服务以及消息缓存服务,并通过对socket进行分类,从而实现当APP退至后台,但未发生Socket连接完全断开的情况下,至APP再次返回前台的这段时间内,Socket消息的正确处理(尤其针对于第一socket信息),以避免APP前后台切换场景下Socket消息的丢失,保障socket消息的正确性和完整性,避免socket消息丢失所引起的APP的显示界面中,出现卡顿等现象(例如:在用户进行游戏时,出现画面的卡顿或游戏中,虚拟人物的状态的不连贯),从而提高用户的使用体验。
图5示出了根据本发明实施例的一种APP前后台切换中状态信息的获取装置50,装置50应用于APP,如图5所示,装置50包括:
第一发送模块501,用于在APP从后台状态切换至前台状态的情况下,向第一服务器发送HTTP请求;其中,HTTP请求用于获取在APP处于后台状态期间,第一服务器产生的与APP相关的待处理的第一socket信息;第一socket信息为当APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息;
第一接收模块502,用于接收来自于第一服务器的HTTP请求响应信息,其中,HTTP请求响应信息中携带待处理的第一socket信息;
处理模块503,用于对待处理的第一socket信息进行处理;
返回模块504,用于向第一服务器返回处理结果。
图6示出了根据本发明实施例的一种APP前后台切换中状态信息的获取装置60,装置60应用于第一服务器,装置60包括:
第二发送模块601,用于向APP发送待处理的第一socket信息;
缓存模块602,用于若未接收到来自APP的待处理的第一socket信息的响应信息,则确定待处理的第一socket信息未发送成功,在本地缓存待处理的第一socket信息;
第二接收模块603,用于接收来自APP的HTTP请求;其中,HTTP请求是APP在从后台状态切换至前台状态的情况下发送的,用于获取第一服务器本地缓存的待处理的第一socket信息;
第三发送模块604,用于向APP发送HTTP请求响应信息,HTTP请求响应信息中携带有待处理的第一socket信息;
第三接收模块605,用于接收APP返回的待处理的第一socket信息的处理结果;
其中,待处理的第一socket信息为当APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息。
图7示出了根据本发明实施例的一种APP前后台切换中状态信息的获取装置70,装置70应用于第二服务器,装置70包括:
第四接收模块701,用于接收第一socket通知信息,其中,第一socket通知信息用于指示APP已切换至后台状态;
第四发送模块702,用于停止发送第三socket信息;其中,第三socket信息为当APP对应的目标对象的状态发生第二类型的变化时,所对应的状态信息。
由此,本发明实施例综合利用HTTP服务以及消息缓存服务,并通过对socket进行分类,从而实现当APP退至后台,但未发生Socket连接完全断开的情况下,至APP再次返回前台的这段时间内,Socket消息的正确处理(尤其针对于第一socket信息),以避免APP前后台切换场景下Socket消息的丢失,保障socket消息的正确性和完整性,避免socket消息丢失所引起的APP的显示界面中,出现卡顿等现象(例如:在用户进行游戏时,出现画面的卡顿或游戏中,虚拟人物的状态的不连贯),从而提高用户的使用体验。
本发明实施例还提供一种电子设备80,如图8所示,包括:处理器801、存储器802及存储在存储器802上并可在处理器801上运行的程序,程序被处理器801执行时实现如上述图1或图2或图3所示的一种APP前后台切换中状态信息的获取方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述图1或图2或图3所示的一种APP前后台切换中状态信息的获取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (9)
1.一种APP前后台切换中状态信息的获取方法,其特征在于,所述方法应用于APP,所述方法包括:
在所述APP从后台状态切换至前台状态的情况下,向第一服务器发送HTTP请求;其中,所述HTTP请求用于获取在所述APP处于后台状态期间,所述第一服务器产生的与所述APP相关的待处理的第一socket信息;所述第一socket信息为当所述APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息;
接收来自于所述第一服务器的HTTP请求响应信息,其中,所述HTTP请求响应信息中携带所述待处理的第一socket信息;
对所述待处理的第一socket信息进行处理;
向所述第一服务器返回处理结果;
在接收来自于所述第一服务器的HTTP请求响应信息之前,所述方法还包括:
接收并缓存所述第一服务器发送的待处理的第二socket信息;其中,所述第二socket信息为在所述APP从后台状态切换至前台状态的情况下,所述第一服务器产生并发送的socket信息;
在接收来自于所述第一服务器的HTTP请求响应信息之后,所述方法还包括:
将所述待处理的第一socket信息和所述待处理的第二socket信息合并处理;
向所述第一服务器返回合并处理的处理结果;
在所述APP从后台状态切换至前台状态的情况下,所述方法还包括:
接收第二服务器发送的第三socket信息;
向所述第二服务器返回响应信息;其中,所述响应信息用于指示所述APP已成功接收到所述第三socket信息;所述第三socket信息为在所述APP内,当一目标对象的状态发生第二类型的变化时,所对应的状态信息;
其中,所述第一类型的变化为目标对象在预设时间段内发生持续性的且多次的变化,所述第二类型的变化为目标对象在预设时间段内,仅发生一次变化。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述APP从前台状态切换至后台状态的情况下,向服务器发送第一socket通知信息,其中,所述第一socket通知信息用于指示所述APP已切换至后台状态;
在所述APP从后台状态切换至前台状态的情况下,向所述服务器发送第二socket通知信息,其中,所述第二socket通知信息用于指示所述APP已切换至前台状态;其中,所述服务器包括所述第一服务器和/或所述第二服务器。
3.一种APP前后台切换中状态信息的获取方法,其特征在于,所述方法应用于第一服务器,所述方法包括:
向APP发送待处理的第一socket信息;
若未接收到来自所述APP的待处理的第一socket信息的响应信息,则确定所述待处理的第一socket信息未发送成功,在本地缓存所述待处理的第一socket信息;
接收来自所述APP的HTTP请求;其中,所述HTTP请求是所述APP在从后台状态切换至前台状态的情况下发送的,用于获取所述第一服务器本地缓存的所述待处理的第一socket信息;
向所述APP发送HTTP请求响应信息,所述HTTP请求响应信息中携带有所述待处理的第一socket信息;
接收所述APP返回的所述待处理的第一socket信息的处理结果;
其中,所述待处理的第一socket信息为当所述APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息;
在向所述APP发送HTTP请求响应信息之前,所述方法还包括:
向所述APP发送待处理的第二socket信息;其中,所述待处理的第二socket信息为在所述APP从后台状态切换至前台状态的情况下,所述第一服务器产生并发送的状态信息;
在向所述APP发送HTTP请求响应信息之后,所述方法还包括:
接收所述APP返回的所述待处理的第二socket信息的处理结果;
其中,所述第一类型的变化为目标对象在预设时间段内发生持续性的且多次的变化。
4.一种APP前后台切换中状态信息的获取方法,其特征在于,所述方法应用于第二服务器,所述方法包括:
接收第一socket通知信息,其中,所述第一socket通知信息用于指示APP已切换至后台状态;
停止发送第三socket信息;其中,所述第三socket信息为当所述APP对应的目标对象的状态发生第二类型的变化时,所对应的状态信息;
所述方法还包括:
接收第二socket通知信息,其中,所述第二socket通知信息用于指示所述APP已切换至前台状态;
向所述APP发送所述第三socket信息;
接收所述APP返回的第三socket信息的响应信息,其中,所述第三socket信息的响应信息用于指示所述APP已成功接收到所述第三socket信息;
其中,所述第二类型的变化为目标对象在预设时间段内,仅发生一次变化。
5.一种APP前后台切换中状态信息的获取装置,其特征在于,所述装置应用于APP,所述装置包括:
第一发送模块,用于在所述APP从后台状态切换至前台状态的情况下,向第一服务器发送HTTP请求;其中,所述HTTP请求用于获取在所述APP处于后台状态期间,所述第一服务器产生的与所述APP相关的待处理的第一socket信息;所述第一socket信息为当所述APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息;
第一接收模块,用于接收来自于所述第一服务器的HTTP请求响应信息,其中,所述HTTP请求响应信息中携带所述待处理的第一socket信息;
处理模块,用于对所述待处理的第一socket信息进行处理;
返回模块,用于向所述第一服务器返回处理结果;
其中,所述装置还用于,在接收来自于所述第一服务器的HTTP请求响应信息之前,接收并缓存所述第一服务器发送的待处理的第二socket信息;其中,所述第二socket信息为在所述APP从后台状态切换至前台状态的情况下,所述第一服务器产生并发送的socket信息;
在接收来自于所述第一服务器的HTTP请求响应信息之后,将所述待处理的第一socket信息和所述待处理的第二socket信息合并处理;
向所述第一服务器返回合并处理的处理结果;
在所述APP从后台状态切换至前台状态的情况下,接收第二服务器发送的第三socket信息;
向所述第二服务器返回响应信息;其中,所述响应信息用于指示所述APP已成功接收到所述第三socket信息;所述第三socket信息为在所述APP内,当一目标对象的状态发生第二类型的变化时,所对应的状态信息;
其中,所述第一类型的变化为目标对象在预设时间段内发生持续性的且多次的变化,所述第二类型的变化为目标对象在预设时间段内,仅发生一次变化。
6.一种APP前后台切换中状态信息的获取装置,其特征在于,所述装置应用于第一服务器,所述装置包括:
第二发送模块,用于向APP发送待处理的第一socket信息;
缓存模块,用于若未接收到来自所述APP的待处理的第一socket信息的响应信息,则确定所述待处理的第一socket信息未发送成功,在本地缓存所述待处理的第一socket信息;
第二接收模块,用于接收来自所述APP的HTTP请求;其中,所述HTTP请求是所述APP在从后台状态切换至前台状态的情况下发送的,用于获取所述第一服务器本地缓存的所述待处理的第一socket信息;
第三发送模块,用于向所述APP发送HTTP请求响应信息,所述HTTP请求响应信息中携带有所述待处理的第一socket信息;
第三接收模块,用于接收所述APP返回的所述待处理的第一socket信息的处理结果;
其中,所述待处理的第一socket信息为当所述APP对应的目标对象的状态发生第一类型的变化时,所对应的状态信息;
其中,所述装置还用于,在向所述APP发送HTTP请求响应信息之前,向所述APP发送待处理的第二socket信息;其中,所述待处理的第二socket信息为在所述APP从后台状态切换至前台状态的情况下,所述第一服务器产生并发送的状态信息;
在向所述APP发送HTTP请求响应信息之后,接收所述APP返回的所述待处理的第二socket信息的处理结果;
其中,所述第一类型的变化为目标对象在预设时间段内发生持续性的且多次的变化。
7.一种APP前后台切换中状态信息的获取装置,其特征在于,所述装置应用于第二服务器,所述装置包括:
第四接收模块,用于接收第一socket通知信息,其中,所述第一socket通知信息用于指示APP已切换至后台状态;
第四发送模块,用于停止发送第三socket信息;其中,所述第三socket信息为当所述APP对应的目标对象的状态发生第二类型的变化时,所对应的状态信息;
其中,所述装置还用于,接收第二socket通知信息,其中,所述第二socket通知信息用于指示所述APP已切换至前台状态;
向所述APP发送所述第三socket信息;
接收所述APP返回的第三socket信息的响应信息,其中,所述第三socket信息的响应信息用于指示所述APP已成功接收到所述第三socket信息;
其中,所述第二类型的变化为目标对象在预设时间段内,仅发生一次变化。
8.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至2中任一项所述的APP前后台切换中状态信息的获取方法的步骤;或者,所述程序被所述处理器执行时实现如权利要求3所述的APP前后台切换中状态信息的获取方法的步骤;或者,所述程序被所述处理器执行时实现如权利要求4所述的APP前后台切换中状态信息的获取方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至2中任一项所述的APP前后台切换中状态信息的获取方法的步骤;或者,所述计算机程序被所述处理器执行时实现如权利要求3所述的APP前后台切换中状态信息的获取方法的步骤;或者,所述计算机程序被所述处理器执行时实现如权利要求4所述的APP前后台切换中状态信息的获取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310559679.7A CN116319947B (zh) | 2023-05-18 | 2023-05-18 | 一种app前后台切换中状态信息的获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310559679.7A CN116319947B (zh) | 2023-05-18 | 2023-05-18 | 一种app前后台切换中状态信息的获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116319947A CN116319947A (zh) | 2023-06-23 |
CN116319947B true CN116319947B (zh) | 2023-07-21 |
Family
ID=86799921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310559679.7A Active CN116319947B (zh) | 2023-05-18 | 2023-05-18 | 一种app前后台切换中状态信息的获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116319947B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686056A (zh) * | 2016-11-25 | 2017-05-17 | 济南中维世纪科技有限公司 | 一种安卓客户端通信装置及与服务器进行连接通信的方法 |
CN106789928A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 基于系统双向认证的解锁方法及装置 |
CN110362395A (zh) * | 2019-07-22 | 2019-10-22 | Oppo广东移动通信有限公司 | 后台程序管理方法、装置、计算机设备以及存储介质 |
CN110474975A (zh) * | 2019-08-08 | 2019-11-19 | 北京云中融信网络科技有限公司 | 应用程序的心跳处理方法、装置、电子设备及存储介质 |
CN110507988A (zh) * | 2019-08-12 | 2019-11-29 | 广州小丑鱼信息科技有限公司 | 一种游戏断线自动重连方法及系统 |
CN111381942A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 一种实现app后台常驻的方法和装置 |
CN113765948A (zh) * | 2020-06-02 | 2021-12-07 | 华为技术有限公司 | 长连接装置和网络系统 |
CN114281555A (zh) * | 2021-11-08 | 2022-04-05 | 北京鲸鲮信息系统技术有限公司 | 应用状态同步方法、装置、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114511683A (zh) * | 2020-10-27 | 2022-05-17 | 北京京东方光电科技有限公司 | 显示切换控制方法及系统、电子设备和存储介质 |
-
2023
- 2023-05-18 CN CN202310559679.7A patent/CN116319947B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686056A (zh) * | 2016-11-25 | 2017-05-17 | 济南中维世纪科技有限公司 | 一种安卓客户端通信装置及与服务器进行连接通信的方法 |
CN106789928A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 基于系统双向认证的解锁方法及装置 |
CN111381942A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 一种实现app后台常驻的方法和装置 |
CN110362395A (zh) * | 2019-07-22 | 2019-10-22 | Oppo广东移动通信有限公司 | 后台程序管理方法、装置、计算机设备以及存储介质 |
CN110474975A (zh) * | 2019-08-08 | 2019-11-19 | 北京云中融信网络科技有限公司 | 应用程序的心跳处理方法、装置、电子设备及存储介质 |
CN110507988A (zh) * | 2019-08-12 | 2019-11-29 | 广州小丑鱼信息科技有限公司 | 一种游戏断线自动重连方法及系统 |
CN113765948A (zh) * | 2020-06-02 | 2021-12-07 | 华为技术有限公司 | 长连接装置和网络系统 |
CN114281555A (zh) * | 2021-11-08 | 2022-04-05 | 北京鲸鲮信息系统技术有限公司 | 应用状态同步方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116319947A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10474319B2 (en) | Methods and instant messaging client devices for performing IM using menu option | |
CN109669821B (zh) | 消息中间件的集群部分故障恢复方法、服务器及存储介质 | |
US11824950B2 (en) | Subscription information update method and apparatus | |
CN112600693B (zh) | 业务请求的处理方法、系统、电子设备及计算机存储介质 | |
CN108880972B (zh) | 一种信息处理方法、服务器及终端 | |
CN110650202A (zh) | 通信交互方法、装置及电子设备 | |
CN111130986B (zh) | 消息发送方法、装置、设备及存储介质 | |
CN112929431A (zh) | 基于微服务框架的消息同步与异步应答转换方法及装置 | |
CN116319947B (zh) | 一种app前后台切换中状态信息的获取方法及装置 | |
CN106357890A (zh) | 一种手机通知栏消息管理的方法 | |
WO2016206572A1 (zh) | 一种核心网网元处理终端注册拥塞的方法及装置 | |
CN113098978B (zh) | 一种数据传输方法、装置及介质 | |
CN113676894B (zh) | 业务处理方法及设备 | |
CN113014404B (zh) | 一种消息传输方法、装置、服务器以及第二客户端 | |
CN111586438B (zh) | 一种业务数据的处理方法、装置及系统 | |
CN108574622B (zh) | 一种基于xmpp的即时消息处理方法及装置 | |
CN113014615A (zh) | 数据同步方法、装置和系统 | |
CN104580458A (zh) | 一种终端应用图片的方法和系统及终端和服务器 | |
CN116546557B (zh) | 数据包处理方法、系统、设备和存储介质 | |
CN104796417A (zh) | 一种创建订阅业务的方法及装置 | |
CN110708386A (zh) | 页面显示方法、终端设备和服务器 | |
CN105009097A (zh) | 消息发射装置、消息发射方法和消息发射程序 | |
WO2016150334A1 (zh) | 一种语音信箱服务器及语音信箱系统的实现方法 | |
CN115209491B (zh) | 信息处理方法、装置、终端及网络侧设备 | |
CN113452602B (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 |