CN116708533A - 连接切换方法、服务器停机方法、终端设备和服务器 - Google Patents

连接切换方法、服务器停机方法、终端设备和服务器 Download PDF

Info

Publication number
CN116708533A
CN116708533A CN202211349201.3A CN202211349201A CN116708533A CN 116708533 A CN116708533 A CN 116708533A CN 202211349201 A CN202211349201 A CN 202211349201A CN 116708533 A CN116708533 A CN 116708533A
Authority
CN
China
Prior art keywords
server
connection
long connection
value
terminal device
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.)
Pending
Application number
CN202211349201.3A
Other languages
English (en)
Inventor
华威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211349201.3A priority Critical patent/CN116708533A/zh
Publication of CN116708533A publication Critical patent/CN116708533A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供了一种连接切换方法、服务器停机方法、终端设备和服务器,涉及电子技术领域。其中,该连接切换方法由终端设备执行,终端设备与第一服务器之间已建立第一长连接,第一长连接用于实现目标业务,该方法包括:通过第一长连接接收来自第一服务器的停机消息,停机消息指示第一服务器处于停机准备状态,停机消息中携带第二服务器的连接信息;响应于停机消息,断开第一长连接;根据该连接信息,尝试与第二服务器建立第二长连接;若第二长连接建立成功,则通过第二长连接实现目标业务。本申请实施例提供的方法能够在服务器停机时减少对用户业务的影响,提高用户体验。

Description

连接切换方法、服务器停机方法、终端设备和服务器
技术领域
本申请涉及电子技术领域,具体涉及一种连接切换方法、服务器停机方法、终端设备和服务器。
背景技术
终端设备与终端设备之间通信,一般是通过服务器实现。以通话场景为例来说,两个终端设备在通过辅助网络功能加强通话质量,或者通过远程用户身份模块(subscriberidentity module,SIM)卡功能实现通话时,这两个终端设备均与远场通信服务器建立连接,并通过远场通信服务器转发通话数据。
一些时候,需要对远场通信服务器进行升级或重新部署,因而需要对远场通信服务器进行停机。如果直接对远场通信服务器停机,会造成远场服务器上的通话业务突然中断,从而导致用户正在进行的通话中断或者通话质量下降,影响用户体验。
也就是说,与终端设备连接的服务器突然停机会造成服务器的业务中断,影响用户体验。因而,如何在服务器停机时减少对用户业务的影响是亟需解决的问题。
发明内容
本申请提供了一种连接切换方法、服务器停机方法、终端设备和服务器,能够在服务器停机时减少对用户业务的影响,提高用户体验。
第一方面,本申请提供一种连接切换方法,该方法由终端设备执行,终端设备与第一服务器之间已建立第一长连接,第一长连接用于实现目标业务,该方法包括:通过第一长连接接收来自第一服务器的停机消息,停机消息指示第一服务器处于停机准备状态,停机消息中携带第二服务器的连接信息,该连接信息用于终端设备与第二服务器建立第二长连接;响应于停机消息,断开第一长连接;根据该连接信息,尝试与第二服务器建立第二长连接;若第二长连接建立成功,则通过第二长连接实现目标业务。
第一方面提供的连接切换方法中,终端设备在接收到第一服务器发送的停机消息后,自主断开与第一服务器的第一长连接,并根据停机消息中携带的第二服务器的连接信息尝试与第二服务器建立第二长连接。当第二长连接建立成功,即长连接由第一长连接切换至第二长连接,终端设备中的目标业务能够基于第二长连接继续运行,减少对用户业务的影响。也就是说,本申请提供的方法能够在用户的目标业务无受损或受损较低的情况下完成第一服务器的停机,实现了第一服务器的优雅停机,提高了用户体验。而且,上述连接切换过程中,无需终端设备的用户参与,对于用户来说为无感切换,进一步提高用户体验。另外,第一服务器发送的停机消息中携带第二服务器的连接信息,因而终端设备无需主动查询第二服务器的连接信息,降低了终端设备重新建立长连接损耗的时间,进而减少目标业务的延迟。
一种可能的实现方式中,该方法还包括:响应于停机消息,将第一标记位的值设置为第一值;根据连接信息,尝试与第二服务器建立第二长连接,包括:若确定第一标记位的值为第一值,且剩余重试次数不等于0,则根据连接信息,尝试建立第二长连接,并将剩余重试次数减1,直至第二长连接建立成功或剩余重试次数等于0;其中,剩余重试次数的初始值大于0。
可选的,第一值例如可以为true。
剩余重试次数用于表征当前可用的尝试建立长连接的次数。可选的,剩余重试次数的初始值例如可以为5。
该实现方式中,通过维护第一标记位,在第一标记位的值为第一值,且剩余重试次数大于0的情况下进入长连接重连状态,根据第二服务器的连接信息尝试与第二服务器建立长连接。如此,将第一标记位的值为第一值作为触发尝试长连接重连的条件之一,提高长连接重连的准确性;将剩余重试次数大于0作为触发尝试长连接重连的条件之一,形成了尝试长连接次数的限制,防止无限度地尝试重连,保证了连接切换运行的效率和可靠性。总而言之,该实现方式提供的方法提高了连接切换的准确性、可靠性和运行效率。
一种可能的实现方式中,该方法还包括:若剩余重试次数等于0,则将剩余重试次数设置为初始值;若第二长连接建立成功,则将第一标记位的值设置为第二值,并将剩余重试次数设置为初始值;第二值不同于第一值。
可选的,第二值例如可以为false。
该实现方式中,在剩余重试次数为0的情况下,将剩余重试次数置为初始值,以便于下一次基于剩余重试次数执行重建长连接流程,提高下一次连接切换的成功率。
一种可能的实现方式中,该方法还包括:若剩余重试次数等于0,则释放目标业务的业务数据。
剩余重试次数等于0,说明用尽剩余重试次数第二长连接仍未建立成功,目标业务的业务数据将无法完成传输,成为废弃数据。这种情况下,及时释放目标业务的业务数据,从而及时释放终端设备的内存空间,优化终端设备的性能。
一种可能的实现方式中,该方法还包括:在确定第一标记位的值为第一值的情况下,保存目标业务的业务数据;在确定第一标记位的值为第二值的情况下,基于第二长连接将保存的目标业务的业务数据发送至第二服务器;第二值不同于第一值。
也就是说,在第一标记位的值为第一值的情况下,对目标业务的业务数据进行暂缓传输,保存这些数据。待第一标记位的值重新设置为第二值的情况下,再对保存的数据进行传输。这样,对于第一服务器停机过程中目标业务产生的业务数据,未进行放弃传输,能够提高业务数据传输的完整性,进而进一步减少对用户业务的影响,提高用户体验。另外,上述过程中,通过维护第一标记位,将第一标记位的值为第一值作为触发启动暂缓传输处理的条件,将第一标记位的值为第二值作为触发重新启动传输的条件,提高了连接切换过程中数据通信管理的准确性。
一种可能的实现方式中,断开第一长连接之后,该方法还包括:将第二标记位的值设置为第三值;在确定第二标记位的值为第三值的情况下,停止对第一长连接的网络监听,并释放第一长连接的数据。
可选的,第三值例如可以为true。第一长连接的数据也即第一长连接的连接数据。在一个实施例中,第一长连接的数据可以包括建立或维持第一长连接所需的数据。可选的,第一长连接的数据还可以包括基于第一长连接实现目标业务过程中所需的其他数据。第一长连接的数据不包括业务数据。
该实现方式中,在断开第一长连接之后,将第二标记位的值为第三值,说明第一长连接断连成功,可以停止对第一长连接的网络监听,并释放第一长连接的数据。这样,通过维护第二标记位,并将第二标记位的值为第三值作为触发停止网络监听和释放连接的数据的条件,提高了网络管理的准确性。另外,在断开第一长连接后,释放第一长连接的数据,这样能够及时释放终端设备的内存空间,优化终端设备的性能,同时在后续建立第二长连接后,能够防止第一长连接的数据影响第二长连接,提高第二长连接的稳定性。
一种可能的实现方式中,停止对第一长连接的网络监听,并释放第一长连接的数据,包括:停止对第一长连接的网络监听,并生成监听结束事件;在确定存在监听结束事件的情况下,释放第一长连接的数据。
该实现方式中,在断开第一长连接后,通过设置第一标记位的值为第三值来触发网络监听模块停止网络监听,并生成监听结束事件,进一步通过监听结束事件触发对第一长连接数据的释放流程。这样,形成信息和任务的异步传输,防止因某一进程的异常导致整个流程的阻塞,即防止死锁现象的发生。
一种可能的实现方式中,根据连接信息,尝试与第二服务器建立第二长连接,包括:在确定存在监听结束事件的情况下,根据连接信息,尝试与第二服务器建立第二长连接。
该实现方式中,通过监听结束事件触发长连接重建流程,同样的,形成信息和任务的异步传输,防止因某一进程的异常导致整个流程的阻塞,即防止死锁现象的发生。
一种可能的实现方式中,生成监听结束事件之后,该方法还包括:将第二标记位的值设置为第四值,第四值不同于第三值。
可选的,第四值可以为false。
该实现方式中,在生成监听结束事件之后,将第二标记位的值重置为第四值,这样能够使后续建立第二长连接后,能够基于第二标记位的值正常进行网络监听,而不会触发停止网络监听。
一种可能的实现方式中,连接信息包括第二服务器的统一资源定位器URL和接口。
第二方面,本申请提供一种服务器停机方法,该方法由第一服务器执行,其特征在于,第一服务器与至少一个终端设备长连接,该方法包括:获取第二服务器的连接信息,第二服务器为能够替代第一服务器的服务器;向各个终端设备发送停机消息,停机消息指示第一服务器处于停机准备状态,停机消息中携带连接信息,连接信息用于终端设备与第二服务器建立长连接;当所有终端设备均与第一服务器断开长连接,或者,距离开始时刻达到预设时长阈值时,停机;开始时刻是指开始发送停机消息的时刻。
距离开始时刻达到预设时长阈值,也即等待时长达到预设时长阈值。可选的,预设时长阈值例如可以为5分钟。
第二方面提供的服务器停机方法中,第一服务器在停机前,及在处于停机准备状态时,向与第一服务器长连接的各个终端设备发送停机消息,停机消息中携带第二服务器的连接信息。当所有终端设备均与第一服务器断开长连接,或者,距离开始时刻达到预设时长阈值时,第一服务器才停机。这样,在停机之前,各个终端设备可以根据停机消息中第二服务器的连接信息进行连接切换,终端设备中的业务能够基于切换后的连接继续运行,减少对用户业务的影响。也就是说,本申请提供的方法能够在终端设备的业务无受损或受损较低的情况下完成第一服务器的停机,实现了第一服务器的优雅停机,提高了用户体验。另外,该方法由第一服务器将第二服务器的连接信息发送至各个终端设备,而无需各个终端设备分别向分发服务器查询可替代服务器,不仅降低了终端设备重新建立长连接损耗的时间,减少终端设备中业务的延迟,而且能够大大减轻分发服务器的查询压力,提高分发服务器的运行效率。
一种可能的实现方式中,获取第二服务器的连接信息,包括:向分发服务器发送请求消息,请求消息用于请求连接信息;接收分发服务器返回的连接信息。
一种可能的实现方式中,向各个终端设备发送停机消息,包括:每间隔预设时长间隔阈值,向与第一服务器连接的所有终端设备发送一次停机消息。
也就是说,第一服务器按照预设周期向当前与其长连接的所有终端设备发送停机消息。可以理解,与第一服务器建立长连接的终端设备可以实时在发生变化。不同的时刻,与第一服务器长连接的终端设备可能相同,也可能不同。第一服务器按照预设周期向当前与其长连接的所有终端设备发送停机消息,这样能够使不同时刻与第一服务器长连接的终端设备均接收到停机消息,减少对终端设备中业务的影响。
第三方面,本申请提供一种装置,该装置包含在终端设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中终端设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。
第四方面,本申请提供一种装置,该装置包含在第一服务器中,该装置具有实现上述第二方面及上述第二方面的可能实现方式中终端设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。
第五方面,本申请提供一种终端设备,终端设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得终端设备执行第一方面的技术方案中任意一种方法。
第六方面,本申请提供一种服务器,服务器包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得终端设备执行第二方面的技术方案中任意一种方法。
第七方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面或第二方面及其任意可能的实现方式中的方法。
可选的,芯片还包括存储器,存储器与处理器通过电路或电线连接。
进一步可选的,芯片还包括通信接口。
第八方面,本申请提供一种通信系统,该通信系统中包括终端设备和第一服务器。终端设备用于执行上述第一方面及其任意可能的实现方式中的方法,第一服务器用于执行上述第二方面及其任意可能的实现方式中的方法。
第九方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面或第二方面的技术方案中任意一种方法。
第十方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在终端设备上运行时,使得该终端设备执行第一方面或第二方面的技术方案中任意一种方法。
附图说明
图1是本申请实施例提供的一例通信系统的结构示意图;
图2是本申请实施例提供的一例辅助网络通话的场景示意图;
图3是本申请实施例提供的一例远场SIM卡的场景示意图;
图4是本申请实施例提供的一例终端设备100的结构示意图;
图5是本申请实施例提供的一例终端设备100的软件结构框图;
图6a是本申请实施例提供的一例连接切换方法和服务器停机的流程示意图;
图6b是本申请实施例提供的一例连接切换方法中的重建长连接的流程示意图;
图7是本申请实施例提供的另一例辅助网络通话的场景示意图;
图8是本申请实施例提供的另一例连接切换方法的流程示意图;
图9是本申请实施例提供的一例连接切换装置的结构示意图;
图10是本申请实施例提供的一例服务器停机装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个该特征。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本申请说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在对本申请实施例提供的连接切换方法和服务器停机方法进行说明之前,首先对该方法所适用的系统和应用场景进行说明。
本申请实施例提供的连接切换方法和服务器停机方法可以应用于终端设备与服务器之间长连接的通信系统,例如图1所示的通信系统中。如图1所示,通信系统包括多个终端设备100和多个服务器。可选的,多个服务器可以形成服务器集群(或称为集群服务器)20。服务器集群20中可以包括连接服务器(connector)200。连接服务器200可以与多个终端设备100分别长连接。连接服务器200用于建立两个终端设备100之间的通信连接,实现这两个终端设备100之间的通信。同时,服务器集群20中还可以包括分发服务器(也称为调度服务器)300,分发服务器300用于对服务器集群20中的服务器进行调度。具体的,服务器集群20中的任一个服务器上线后向分发服务器300注册该服务器的信息,分发服务器300对已注册的服务器进行调度和分配。当终端设备100或服务器集群20中的服务器向分发服务器发起请求时,分发服务器300向终端设备100分配服务器。
上述通信系统中,终端设备100可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,本申请实施例对终端设备100的具体类型不作任何限制。服务器集群20中的服务器可以为物理服务器,也可以为云服务器。
可以理解,在一些情形下,需要对服务器集群20中的服务器进行升级或重新部署。以服务器集群中的连接服务器200为例,当需要对连接服务器200进行升级或重新部署时,需要对连接服务器200进行停机。如果直接对连接服务器200停机,会造成连接服务器200上的业务突然中断,影响用户体验。有鉴于此,本申请实施例提供一种连接切换方法和一种服务器停机方法,在连接服务器200需要停机时,通过连接服务器200向终端设备下发停机消息,并在停机消息中携带能够替换连接服务器200的新服务器的连接信息,终端设备响应于停机消息,根据新服务器的连接信息与新服务器建立连接。这样,终端设备能够基于新服务器继续实现业务功能,在连接服务器200停机时减少对用户业务的影响,提高用户体验。
下面结合应用场景对本申请实施例提供的方法的目的进行进一步说明。本申请实施例对于连接切换方法和服务器停机方法的具体应用场景不做限定,涉及如图1所示的通信系统的场景均可以使用该方法。下面以辅助网络通话场景和远程SIM卡场景为例进行说明。
辅助网络通话场景和远程SIM卡场景下,图1中的服务器集群20可以为远场通信服务器集群,图1中的连接服务器200为远场通信服务器集群20中的连接服务器。
示例性的,图2为本申请实施例提供的一例辅助网络通话的场景示意图。以终端设备A和终端设备B之间进行语音通话为例,如图2所示,终端设备A和终端设备B之间可以通过终端设备A、基站A、核心网设备、基站B和终端设备B形成的主链路进行语音数据包的传输。但是,由于网络不佳,可能导致终端设备A和/或终端设备B接收到的信号强度较弱,从而导致主链路中的语音数据包可能出现丢失、时延过大或者抖动等情况,最终导致通话质量较差,出现语音断续、无声或中断等现象。
为了提高通话质量,可以建立终端设备A与终端设备B之间的辅助链路。如图2中,终端设备A可以通过路由器A与远场通信服务器集群建立连接,终端设备B可以通过路由器B与远场通信服务器集群建立连接。可选的,终端设备A、终端设备B可以通过路由器,基于无线保真(wireless fidelity,Wi-Fi)技术与远场通信服务器集群建立连接,本申请对此不作任何限定。如此,形成终端设备A、远场通信服务器集群和终端设备B的辅助链路。终端设备A和终端设备B在通过主链路传输语音数据包过程中,若出现信号强度较弱的情况下,可以通过辅助链路传输语音数据包。终端设备A或终端设备B接收到主链路的语音数据包和辅助链路的语音数据包后,可以对两种语音数据包进行去重及合并处理,从而提高通话质量。
远场通信服务器集群中一些连接服务器与终端设备A、终端设备B建立的连接为长连接,例如,用于传输控制指令的控制指令服务器、用于传输数据包的数据包服务器等。这些服务器在需要进行停机时,如果直接停机会导致用户正在进行的通话质量下降,甚至出现通话中断,影响用户体验。通过本申请实施例提供的方法能够减少对通话业务的影响,提高用户体验。
示例性的,图3为本申请实施例提供的一例远场SIM卡的场景示意图。以终端设备C通过终端设备D与终端设备E进行语音通话为例,其中,终端设备C未安装SIM卡,终端设备D和终端设备E均安装有SIM卡。如图3所示,终端设备C可以通过远场通信服务器集群与终端设备D建立连接,终端设备D与终端设备E可以通过SIM卡,基于各自的基站(图未示)建立连接。因而,终端设备C和终端设备E之间可以通过终端设备D转发语音数据包,实现终端设备C和终端设备E之间的语音通话。与辅助网络通话场景类似,远场通信服务器集群中一些连接服务器与终端设备C和终端设备D建立的连接为长连接,这些连接服务器在需要进行停机时,如果直接停机会导致用户正在进行的通话中断,影响用户体验。通过本申请实施例提供的方法能够减少对通话业务的影响,提高用户体验。
下面对图1所示的通信系统中终端设备100的结构进行说明。
示例性的,图4是本申请实施例提供的一例终端设备100的结构示意图。终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。图4中的天线1和天线2的结构仅为一种示例。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端设备100中,不能和终端设备100分离。
终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。
图5是本申请实施例的终端设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。应用程序层可以包括一系列应用程序包。
如图5所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图5所示,本申请实施例中,应用程序框架层还包括业务服务和远场通信服务。其中,远场通信服务包括网络监听模块、标记位维护模块、连接管理模块、数据释放模块和数据传输模块。
本申请实施例中,业务服务为泛指的功能模块,是指基于终端设备100与服务器之间建立的长连接来实现业务功能的模块。换句话说,业务服务用于通过终端设备100与服务器之间建立的长连接传输业务数据。不同的应用场景、不同的服务器,业务服务和业务数据不同。以辅助网络通话场景和远程SIM卡场景为例,业务服务可以为IP多媒体系统(IPmultimedia subsystem,IMS)服务(以下简称IMS服务)。IMS服务用于实现终端设备100的通话功能。具体的,IMS用于生成通话业务数据,或者接收并处理对端设备传输的业务数据。该场景下,业务数据可以为通话业务数据。通话业务数据可以包括控制指令、消息报文或者语音通话数据等,其中,控制指令可以包括请求建立控制通道、选定辅助通话的服务端供应商、参数设置等。当然,业务服务也可以是电子设备中其他层的模块,本申请对此不做任何限定。
远场通信服务用于实现终端设备100与服务器之间的通信,包括终端设备100与服务器之间连接建立、断开和切换,以及数据的传输等。
其中,远场通信服务中的网络监听模块用于监听终端设备100与服务器之间的连接状态。网络监听模块可以通过监听网络变化事件或者接收网络变化信息实现对连接状态的监听。
远场通信服务中的标记位维护模块用于维护和设置标记位的值,例如维护和设置停止网络监听标记位(第二标记位)、长连接重连标记位(第一标记位)等标记位的值。
远场通信服务中的连接管理模块用于建立或断开与服务器之间的连接。
远场通信服务中的数据释放模块用于释放连接数据或者业务数据。连接数据包括终端设备100建立或维持与服务器之间的长连接所需的数据,以及终端设备100基于该长连接实现相关业务所需的数据等。连接数据例如可以包括连接维持过程中的保活数据、上下文(context)数据,以及基于某一长连接实现业务过程中生成的业务定时器等等。可以理解,连接数据为终端设备100中某一长连接特有的数据,无法应用于其他长连接。业务数据是指终端设备100中业务服务实现业务过程中产生的数据。以语音通话业务为例,业务数据例如可以为通话过程中产生的控制指令数据、语音数据包等。可以理解,业务数据不是某一长连接的特有数据,不同的长连接均可以对业务数据进行传输。例如,终端设备100在与某一服务器长连接的情况下,产生的业务数据,在终端设备100将长连接切换至另一个服务器后,该业务数据仍然可以被继续传输。数据传输模块用于将业务服务的业务数据基于终端设备100与服务器之间的连接发送至服务器。
除此之外,应用程序框架层还可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
为了便于理解,本申请以下实施例将以图1所示的通信系统,并以具有图4和图5所示结构的终端设备为例,结合附图,对本申请实施例提供的连接切换方法和服务器停机方法进行具体阐述。为了便于说明,将需要停机的服务器称为第一服务器,将终端设备需要新建连接的服务器(即代替第一服务器的新服务器)称为第二服务器。本申请实施例中终端设备与第一服务器或第二服务器建立的连接均为长连接,下述将终端设备与第一服务器之间的长连接称为第一长连接,将终端设备与第二服务器之间的长连接称为第二长连接。
图6a是本申请实施例提供的一例服务器停机方法和连接切换方法的流程示意图,如图6a所示,当第一服务器需要停机时,执行服务器停机方法(步骤S101至S105):
S101、第一服务器向分发服务器发送请求消息,请求消息用于请求第二服务器的连接信息,其中,第二服务器与第一服务器的类型相同,能够替代第一服务器,第二服务器的连接信息用于终端设备与第二服务器建立第二长连接。
可选的,当确定第一服务器需要停机时,运维人员可以向第一服务器输入停机指令。第一服务器响应于停机指令,向分发服务器发送请求消息。
第二服务器与第一服务器的类型相同可以包括二者传输的数据类型相同、通信协议相同等等。总而言之,第二服务器能够替代第一服务器即可。
S102、响应于请求消息,分发服务器查询可替代第一服务器的服务器,并从可替代第一服务器的服务器中确定第二服务器。
可选的,分发服务器可以从当前上线的服务器中确定与第一服务器类型相同的服务器,即确定出可替代第一服务器的服务器。之后,分发服务器根据预设调度规则,从可替代第一服务器的服务器中确定出第二服务器。
另外,分发服务器在接收到第一服务器发送的请求消息后,可以对第一服务器进行标记,后续分发服务器不再向终端设备分配第一服务器。
S103、分发服务器将第二服务器的连接信息返回至第一服务器。
可选的,第二服务器的连接信息包括但不限于第二服务器的统一资源定位器(uniform resource locator,URL)和接口等。
S104、第一服务器按照预设周期向当前与其长连接的所有终端设备的数据传输模块发送停机消息;其中,停机消息用于表征第一服务器处于停机准备状态,停机消息中携带第二服务器的连接信息。
可选的,预设周期例如可以为1分钟。可以理解,与第一服务器建立长连接的终端设备可以实时在发生变化。不同的时刻,与第一服务器长连接的终端设备可能相同,也可能不同。在每个周期的起始时刻到来时,第一服务器都向当前与其长连接的所有终端设备发送停机消息。例如,第一周期的起始时刻(如时刻T0),与第一服务器长连接的终端设备可能为终端设备A、终端设备B、终端设备C、终端设备D和终端设备E,则此时第一服务器向终端设备A、终端设备B、终端设备C、终端设备D和终端设备E分别发送停机消息。第二周期的起始时刻(如T0之后1分钟),与第一服务器长连接的终端设备可能为终端设备B、终端设备C、终端设备E和终端设备F,则此时第一服务器向终端设备B、终端设备C、终端设备E和终端设备F分别发送停机消息。如此,能够使不同时刻与第一服务器长连接的终端设备均接收到停机消息,减少对终端设备中业务的影响。
S105、当不存在与第一服务器长连接的终端设备,或者等待时长达到预设时长阈值时,第一服务器停止发送停机消息,并停机;其中,等待时长是指第一服务器开始发送停机消息的时刻至当前时刻的时长。
可以理解,终端设备在接收到第一服务器发送的停机消息后,会断开与第一服务器之间的第一长连接(后续进行详细阐述),因而,与第一服务器长连接的终端设备的数量会逐渐减少。当与第一服务器长连接的终端设备均断开连接,即,不存在与第一服务器长连接的终端设备时,第一服务器停止发送停机消息,并停机。或者,虽然当前仍存在与第一服务器长连接的终端设备,但是等待时长达到预设时长阈值,则第一服务器也停止发送停机消息。预设时长阈值可以根据实际需求设置,以预设时长阈值为5分钟为例来说,若在第一服务器开始发送停机消息(即第一服务器发送第一条停机消息)的时刻之后第5分钟,虽然仍然存在与第一服务器长连接的终端设备,但是由于等待时长达到预设时长阈值,第一服务器停止发送停机消息,并停机。
需要说明的是,第一服务器在开始发送停机消息到停机之前这段时间,第一服务器仍然可以正常为与其长连接的终端设备提供服务,保证向终端设备提供的业务的正常进行。以第一服务器为远程通信服务集群中的服务器为例,在第一服务器开始发送停机消息到停机之前,第一服务器可以正常创建或释放通信通道、转发语音数据包等,以保证通话业务的正常进行。
上述过程中,第一服务器在停机前,通过向分发服务器请求第二服务器的连接信息,并向与第一服务器长连接的终端设备发送停机消息,停机消息中携带第二服务器的连接信息。这样,后续各个终端设备可以根据停机消息中第二服务器的连接信息进行连接切换,而无需分别向分发服务器查询可替代服务器,不仅降低了终端设备重新建立长连接损耗的时间,减少终端设备中业务的延迟,而且能够大大减轻分发服务器的查询压力,提高分发服务器的运行效率。
请一并参见如图6a和图6b,对于通信系统中与第一服务器长连接的任一个终端设备,执行下述连接切换方法(步骤S106至S127):
S106、远场通信服务中的数据传输模块将停机消息发送至网络监听模块。
数据传输模块在接收到第一服务器发送的停机消息后,将停机消息转发至网络监听模块。当然,在另一些可能的实现方式中,网络监听模块也可以直接接收第一服务器发送的停机消息,本申请对此不做限定。
S107、响应于停机消息,网络监听模块向远场通信服务中的标记维护模块和连接管理模块分别发送连接切换指令,连接切换指令中携带第二服务器的连接信息,连接切换指令用于指示将长连接从第一服务器切换至第二服务器,即断开当前与第一服务器的第一长连接,并与第二服务器建立第二长连接。
具体的,网络监听模块接收到停机消息后,解析停机消息中第二服务器的连接信息,并根据第二服务器的连接信息生成连接切换指令。网络监听模块将连接切换指令分别发送至标记维护模块和连接管理模块。
S108、远场通信服务中的标记位维护模块响应于连接切换指令,设置长连接重连标记位(第一标记位)的值为true。
具体的,标记位维护模块可以维护有长连接重连标记位,长连接重连标记位用于指示是否重新建立长连接。本实施例中,长连接重连标记位可以有true和false两个值,长连接重连标记位的值为true,指示重新建立长连接;长连接重连标记位的值为false,指示不重新建立长连接。当然,以上长连接重连标记位的值仅为举例,不作为限定,实际应用中,可以根据需求设置其他的值,例如,设置长连接重连标记位的值为0和1等。
S109、远场通信服务中的连接管理模块响应于连接切换指令,断开第一长连接,并生成断连完成事件,断连完成事件表征已断开当前的长连接。
S110、连接管理模块向标记位维护模块发送断连完成事件。
S111、标记位维护模块接收到断连完成事件后,将停止网络监听标记位(第二标记位)的值设置为true。
可选的,远场通信服务中的标记位维护模块维护有停止网络监听标记位。停止网络监听标记位用于指示是否停止当前长连接的网络监听。在一个具体的实施例中,停止网络监听标记位可以有true和false两个值,停止网络监听标记位的值为true,指示停止对当前长连接的网络监听;停止网络监听标记位的值为false,指示不停止对当前长连接的网络监听。当然,以上停止网络监听标记位的值仅为举例,不作为限定,实际应用中,可以根据需求设置其他的值,例如,设置停止网络监听标记位的值为0和1等。
当标记位维护模块接收到断连完成事件,表征终端设备与服务器断开了长连接,标记位维护模块设置停止网络监听标记为true。
S112、网络监听模块确定停止网络监听标记位的值为true,停止网络监听,并生成监听结束事件,监听结束事件表征已结束当前长连接的监听。
可选的,网络监听模块可以周期性的监控停止网络监听标记位的值,以确定是否停止网络监听。当网络监听模块确定停止网络监听标记位的值为true时,网络监听模块停止网络监听,并生成监听结束事件。
S113、网络监听模块将监听结束事件分别发送至标记位维护模块、数据释放模块和连接管理模块。
S114、标记位维护模块接收到监听结束事件后,将停止网络监听标记位的值设置为false。
可以理解,本实施例中,停止网络监听标记位的值为false可以不作为启动网络监听的触发条件,网络监听的启动可以有其他预设的启动流程。这里将停止网络监听标记位的值设置为false,使得后续建立新的长连接(第二长连接)后,网络监听模块能够基于停止网络监听标记位的值正常进行网络监听,而不会触发停止网络监听。
另外,监听结束事件也表征终端设备与第一服务器成功断开长连接,因而,可以将监听结束事件作为数据释放流程和重建长连接流程的触发条件,在发送监听结束事件后执行步骤S115至步骤S127。其中,步骤S115、S125和S126为数据释放流程中的内容,步骤S116至S122、S124和S127为重建长连接流程中的内容。而且,本实施例中,在断开第一长连接后,通过设置停止网络监听标记位的值为true来触发网络监听模块停止网络监听,并生成监听结束事件,进一步通过监听结束事件触发数据释放流程和重建长连接流程,这样,形成信息和任务的异步传输,防止因某一进程的异常导致整个流程的阻塞,即防止死锁现象的发生。
S115、数据释放模块接收到监听结束事件后,释放第一长连接的连接数据。
可选的,第一长连接的连接数据包括终端设备建立或维持第一长连接所需的数据,例如终端设备与第一服务器之间发送的保活数据、上下文数据等。第一长连接的连接数据还可以包括终端设备基于第一长连接实现相关业务所需的数据,例如,终端设备为了基于第一长连接实现某一业务而设置的业务定时器等。总而言之,第一长连接的连接数据为终端设备中与第一长连接相关,且无法应用于其他长连接(如第二长连接)的数据。第一长连接的连接数据保存在终端设备的内存中,数据释放模块在接收到监听结束事件后,对这些数据进行释放。这样能够释放终端设备的内存空间,同时在后续建立第二长连接后,能够防止第一长连接的连接数据影响第二长连接,提高第二长连接的稳定性。
S116、连接管理模块接收到监听结束事件后,确定长连接重连标记位的值为true。
具体的,远场通信服务中的连接管理模块接收到监听结束事件后,确定长连接重连标记位的值是否为true。本实施例中,步骤S108中,标记位维护模块将长连接重连标记位的值为true,因而这里连接管理模块确定长连接重连标记位的值为true,继续执行步骤S117。
S117、连接管理模块确定剩余重试次数是否等于0,其中,剩余重试次数的初始值为大于0的预设值;若否,则执行步骤S118和S119(参见图6a);若是,则执行步骤S124至S127(参见图6b)。
具体的,剩余重试次数为连接管理模块维护的参数,用于表征当前可用的尝试建立长连接的次数,也称为剩余尝试次数。连接管理模块每尝试与第二服务器建立长连接一次,剩余重试次数减1。当剩余重试次数为0时,表示当前无可用的尝试建立长连接次数,连接建立失败。可选的,预设值例如可以为5,也即,剩余重试次数的初始值可以为5。
S118、连接管理模块根据连接切换指令中第二服务器的连接信息尝试与第二服务器建立第二长连接,并将剩余重试次数减1。
也就是说,若长连接重连标记位的值为true且剩余重试次数大于0,则连接管理模块根据第二服务器的连接信息尝试与第二服务器建立第二长连接。
S119、连接管理模块确定第二长连接是否建立成功;若否,则返回执行步骤S117;若是,则执行步骤S120至S122。
也就是说,在长连接重连标记位的值为true,且剩余重试次数大于0的情况下,连接管理模块多次尝试与第二服务器建立第二长连接,直至剩余重试次数减少为0或者第二长连接建立成功。可选的,连接管理模块在确定第二长连接建立失败时,可以直接返回执行步骤S117,也可以在预设的时间间隔之后返回执行S117。也即,连接管理模块按照预设周期多次尝试与第二服务器建立第二长连接,预设周期例如可以为1秒等。
S120、连接管理模块向标记位维持模块发送连接成功通知,连接成功通知用于表征已成功建立第二长连接。
S121、标记位维持模块将长连接重连标记位的值设置为false。
也就是说,在第二长连接建立成功的情况下,将长连接重连标记位的值设置为false。
S122、连接管理模块将剩余重试次数置为初始值。
将剩余重试次数置为初始值,以便于下一次基于剩余重试次数执行重建长连接流程,提高下一次连接切换的成功率。
S123、数据传输模块在确认长连接重连标记位的值为false的情况下,基于第二长连接进行通信。
长连接重连标记位的值为false,说明当前终端设备与服务器建立了长连接,且此时终端设备与服务器的长连接为第二长连接,因此,数据传输模块可以基于第二长连接进行通信。例如,数据传输模块可以基于第二长连接向对端设备发送IMS服务生成的语音数据包,或者接收对端设备发送的语音数据包。
S124、连接管理模块向业务服务发送网络断连通知。
网络断连通知用于通知业务服务当第一长连接已断开。以辅助网络通话场景为例,连接管理模块向IMS服务发送网络断连通知。可选的,连接管理模块可以直接向IMS服务发送网络断连通知,也可以通过终端设备的其他模块(例如数据传输模块等)向IMS服务发送网络断连通知,网络断连通知用于通知当前终端设备与远场通信服务器集群中的某一服务器(例如控制指令服务器)建立的长连接已断开。可以理解,业务服务在接收到网络断连通知后可以进一步启动对应的应对策略,如启动备选方案,或者在页面显示断网提示信息等,本申请对此不做限定。
S125、连接管理模块向数据释放模块发送业务数据释放指令,业务数据释放指令用于指示释放终端设备中业务服务产生的业务数据。
S126、数据释放模块接收到业务数据释放指令后,释放业务数据。
也就是说,若长连接重连标记位的值为true且剩余重试次数为0,则连接管理模块向业务服务发送网络断连通知,并向业务数据释放模块发送业务数据释放指令。另外,若长连接重连标记位的值为false,则连接管理模块也可以向业务服务发送网络断连通知,并向业务数据释放模块发送业务数据释放指令。总而言之,若长连接重连标记为false,或者,长连接重连标记位的值为true且剩余重试次数为0,则连接管理模块向业务服务发送网络断连通知,并向业务数据释放模块发送业务数据释放指令。
长连接重连标记为false,或者,长连接重连标记位的值为true且剩余重试次数为0,说明第二长连接建立失败。在第二长连接建立失败的情况下,向业务服务发送网络断连通知,以及时通知业务服务当前终端设备与服务器的网络连接断开,便于业务服务及时作出应对,提高业务执行效果,提高用户体验。同时,在第二长连接建立失败的情况下,向业务数据释放模块发送业务数据释放指令,以指示数据释放模块及时释放业务数据,从而及时释放终端设备的内存空间,优化终端设备的性能。
S127、连接管理模块将剩余重试次数置为初始值。
同样的,将剩余重试次数置为初始值,以便于下一次基于剩余重试次数执行重建长连接流程,提高下一次连接切换的成功率。
上述过程中,终端设备在接收到第一服务器发送的停机消息后,自主断开与第一服务器的第一长连接,并根据停机消息中携带的第二服务器的连接信息尝试与第二服务器建立第二长连接。这样,将长连接从第一长连接切换至第二长连接,终端设备中的业务能够基于第二长连接继续运行,减少对用户业务的影响,也就是说,在用户业务无受损或受损较低的情况下完成第一服务器的停机,实现第一服务器的优雅停机,提高用户体验。而且,上述连接切换过程中,无需终端设备的用户参与,对于用户来说为无感切换,进一步提高用户体验。另外,上述过程中,通过维护长连接重连标记位,在长连接重连标记位的值为true,且剩余重试次数大于0的情况下进入长连接重连状态,根据第二服务器的连接信息尝试与第二服务器建立长连接。如此,将长连接重连标记位的值为true作为触发尝试长连接重连的条件之一,提高长连接重连的准确性;将剩余重试次数大于0作为触发尝试长连接重连的条件之一,形成了尝试长连接次数的限制,防止无限度地尝试重连,保证了连接切换运行的效率和可靠性。除此之外,上述过程中,通过维护停止网络监听标记位,在停止网络监听标记位的值为true的情况下,生成监听结束事件,通过监听结束事件触发数据释放流程和重建长连接流程。这样,能够确保数据释放流程和重建长连接流程的准确启动,提高连接切换的准确性。
在一个实施例中,在连接切换的过程中,终端设备产生的业务数据可以暂时不进行调度传输,而是暂时存储于终端设备,并可以按照生成时间形成业务数据集,等待连接切换完成后,再依次进行调度传输业务数据集中的数据。为了便于描述,下述将这个过程称为数据暂缓传输处理。连接切换过程中进行数据暂缓传输处理能够保证业务数据的完整传输,进一步减少对用户业务的影响,提高用户体验。下面以辅助网络通话场景为例,对连接切换过程中终端设备中产生的业务数据的处理方法进行说明。
示例性的,图7为本申请实施例提供的另一例辅助网络通话的场景示意图。如图7中的(a)图和(b)图所示,终端设备A和终端设备B均包括IMS服务。如图7中的(a)图所示,终端设备A通过基于基站A、核心网设备和基站B与终端设备B建立语音通话的主链路(具体的可以参见图2所示实施例),终端设备A的IMS服务与终端设备B的IMS服务可以通过主链路传输通话业务数据。当终端设备A和/或终端设备B的信号强度较弱时,终端设备A和终端服务器B可以分别通过各自的远场通信服务与远程通信服务器集群建立连接。本实施例中,以远程通信服务器集群中的第一服务器(图中示为①)为例进行说明。终端设备A与第一服务器建立第一长连接a,终端设备B与第一服务器建立第一长连接b。终端设备A的远场通信服务能够基于第一长连接a与第一服务器通信,终端设备B的远场通信服务能够基于第一长连接b与第一服务器通信,终端设备A的远场服务器模块、第一服务器、终端设备B的远场服务器模块形成了第一辅助链路,终端设备A和终端设备B可以基于第一辅助链路传输通话业务数据,具体的可以参见图2所示实施例,在此不做赘述。若第一服务器需要停机,终端设备A和终端设备B需要按照上述图6a和图6b所示过程进行连接切换。切换过程中终端设备A和终端设备B可以对产生的通话业务数据暂时存储。
如图7中的(b)图所示,继续以分发服务器向第一服务器分配的可替代服务器为第二服务器(图中示为②)为例,终端设备A的远场通信服务断开第一长连接a,并建立与第二服务器的第二长连接a。终端设备B的远场通信服务断开第一长连接b,并建立与第二服务器的第二长连接b。终端设备A的远场服务器模块、第二服务器、终端设备B的远场服务器模块形成了第二辅助链路。终端设备A中暂时存储的通话业务数据可以基于第二辅助链路发送至终端设备B,终端设备B中暂时存储的通话业务数据可以基于第二辅助链路发送至终端设备A。
示例性的,图8为本申请实施例提供的另一例连接切换方法和服务器停机方法的流程示意图。本实施例中,主要以终端设备A在连接切换过程中对通话业务数据的暂缓传输处理为例进行说明,终端设备B在连接切换过程中对通话业务数据的处理过程与终端设备A相同,不做赘述。如图8所示,本实施例中,服务器停机方法和连接切换方法包括:
S201、终端设备A的IMS服务生成通话业务数据1。
当用户通过终端设备A进行语音通话,终端设备A的IMS服务生成通话业务数据。本实施例中,通话业务数据1指第一服务器停机之前,终端设备A的IMS服务生成的通话业务数据。
S202、终端设备A的IMS服务将通话业务数据1打包发送至数据传输模块。
S203、数据传输模块确定长连接重连标记位的值为false,终端设备A的数据传输模块基于第一长连接a将通话业务数据1发送至第一服务器。
可选的,数据传输模块在传输每一条数据时,可以确认当前长连接标记位是否为false,若是,则将该条数据基于当前的长连接发送至服务器。
S204、第一服务器基于第一长连接b将通话业务数据1发送至终端设备B的数据传输模块。
当然,终端设备A产生的通话业务数据1也会通过主链路传输至终端设备B,本申请对此不做过多介绍。
S205、第一服务器通过向终端设备A的数据传输模块向终端设备A的网络监听模块发送停机消息,停机消息中携带第二服务器的连接信息。
具体的,第一服务器需要停机时,可以按照上述图6a实施例所示的过程获取第二服务器的连接信息,并向各个终端设备(包括终端设备B)分别发送停机消息,在此不做赘述。
S206、终端设备A的网络监听模块响应于停机消息,向终端设备A的标记维护模块和连接管理模块分别发送连接切换指令,连接切换指令中携带第二服务器的连接信息,连接切换指令用于指示切换长连接至第二服务器。
S207、终端设备A的标记位维护模块响应于连接切换指令,设置长连接重连标记位的值为true。
S208、终端设备A的IMS服务生成通话业务数据2。
本实施例中,通话业务数据2指第一服务器停机之后,且在与第二服务器成功建立第二长连接之前,终端设备A的IMS服务生成的通话业务数据。
S209、终端设备A的IMS服务将通话业务数据2打包发送至数据传输模块。
S210、数据传输模块确定长连接重连标记位的值为true,存储通话业务数据2,生成通话业务数据集。
数据传输模块确定长连接重连标记位的值为true,也即当前正处于连接切换期间,暂时不对数据进行传输,而将数据暂存起来。
可选的,IMS服务可以按照生成时间将通话业务数据2排序形成通话业务数据集。
S211、终端设备A的连接管理模块响应于连接切换指令,断开与第一服务器的第一长连接a。
S212、终端设备A的连接管理模块建立与第二服务器的第二长连接a。
步骤S211和S212具体可以参见图6a所示实施例,不再赘述。
S213、终端设备A的连接管理模块向标记位维护模块发送连接成功通知。
S214、终端设备A的标记位维护模块将长连接重连标记位的值设置为false。
S215、终端设备A的数据传输模块确定长连接重连标记位的值为false,终端设备A的数据传输模块基于第二长连接a,将通话业务数据集中的通话业务数据2发送至第二服务器。
同理,终端设备B也重新与第二服务器建立第二长连接b,因此,执行步骤S216。
S216、第二服务器基于第二长连接b将通话业务数据2发送至终端设备B的数据传输模块。
可选的,终端设备A的数据传输模块可以按照业务数据2的生成时间的先后顺序,将通话业务数据集中的通话业务数据2依次发送至第二服务器。
可以理解,在连接切换的过程中,对于以业务数据为代表的对时效性要求较高的数据,均可以进行数据暂缓传输处理。对于对时效性要求不高的数据,如具有较长重传时间间隔的消息,可以不进行数据暂缓传输处理。例如,在连接切换过程中,对于握手、保活等消息,根据预设的传输协议,这些消息传输失败后会在间隔一段时间(如45秒)后重新传输,即使连接切换过程中传输失败,在第二长连接建立后这些消息可以重新传输,不会受到影响,因而可以不进行数据暂缓传输处理。这样能够减少连接切换过程中的数据处理压力,提高终端设备的运行效率。
可选的,对数据是否进行数据暂缓传输处理,可以按照数据类型进行预先设定,也可以按照数据的传输通道进行预先设定。以辅助网络通话业务为例,可以预先设定对于终端设备中创建通道、发送控制消息通道、释放通道等通道传输的数据进行数据暂缓传输处理,其他通道的数据不进行数据暂缓传输处理。也就是说,连接切换过程中,数据传输模块在接收到数据时,可以确定数据的传输通道。若数据的传输通道为上述几种通道中的一种,则对该数据进行上述数据暂缓传输处理,否则不进行数据暂缓传输处理。
上述过程中,通过维护长连接重连标记位,将长连接重连标记位的值为true作为触发启动暂缓传输处理的条件,将长连接重连标记位的值为false作为触发重新启动传输的条件,提高了连接切换过程中数据通信管理的准确性。
上文详细介绍了本申请实施例提供的连接切换方法和服务器停机方法的示例。可以理解的是,终端设备或服务器为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
示例性的,图9为本申请实施例提供的一例连接切换装置的结构示意图。该连接切换装置应用于终端设备,终端设备与第一服务器之间已建立第一长连接,第一长连接用于实现目标业务。如图9所示,连接切换装置900包括:
接收模块901,用于通过第一长连接接收来自第一服务器的停机消息,停机消息指示第一服务器处于停机准备状态,停机消息中携带第二服务器的连接信息;
断连接模块902,用于响应于停机消息,断开第一长连接;
重连模块903,用于根据连接信息,尝试与第二服务器建立第二长连接;
通信模块904,用于若第二长连接建立成功,则通过第二长连接实现目标业务。
其中,接收模块901可以为上述实施例中的数据传输模块,断连接模块902和重连模块903可以为上述实施例中的连接管理模块,通信模块904可以包括上述实施例中的数据传输模块和/或业务服务。
在一个实施例中,连接切换装置900还包括设置模块905,用于响应于停机消息,将第一标记位的值设置为第一值;重连模块903具体用于:若确定第一标记位的值为第一值,且剩余重试次数不等于0,则根据连接信息,尝试建立第二长连接,并将剩余重试次数减1,直至第二长连接建立成功或剩余重试次数等于0;其中,剩余重试次数的初始值大于0。
其中,设置模块905可以包括上述实施例中的标记维护模块。
在一个实施例中,设置模块905还用于若剩余重试次数等于0,则将剩余重试次数设置为初始值;若第二长连接建立成功,则将第一标记位的值设置为第二值,并将剩余重试次数设置为初始值;第二值不同于第一值。
在一个实施例中,连接切换装置900还包括释放模块906,用于若剩余重试次数等于0,则释放目标业务的业务数据。
其中,释放模块906可以包括上述实施例中的数据释放模块和网络监听模块。
在一个实施例中,通信模块904还用于:在确定第一标记位的值为第一值的情况下,保存目标业务的业务数据;在确定第一标记位的值为第二值的情况下,基于第二长连接将保存的目标业务的业务数据发送至第二服务器;第二值不同于第一值。
在一个实施例中,设置模块905还用于:将第二标记位的值设置为第三值;释放模块906还用于:在确定第二标记位的值为第三值的情况下,停止对第一长连接的网络监听,并释放第一长连接的数据。
在一个实施例中,释放模块906具体用于:停止对第一长连接的网络监听,并生成监听结束事件;在确定存在监听结束事件的情况下,释放第一长连接的数据。
在一个实施例中,重连接模块903具体用于:在确定存在监听结束事件的情况下,根据连接信息,尝试与第二服务器建立第二长连接。
在一个实施例中,设置模块905还用于:将第二标记位的值设置为第四值,第四值不同于第三值。
在一个实施例中,连接信息包括第二服务器的统一资源定位器URL和接口。
示例性的,图10本申请实施例提供的一例服务器停机装置的结构示意图。该服务器停机装置包含于第一服务器,第一服务器与至少一个终端设备长连接。如图10所示,服务器停机装置1000包括:
获取模块1001,用于获取第二服务器的连接信息,第二服务器为能够替代第一服务器的服务器;
发送模块1002,用于向各个终端设备发送停机消息,停机消息指示第一服务器处于停机准备状态,停机消息中携带连接信息,连接信息用于终端设备与第二服务器建立长连接;
停机模块1003,用于当所有终端设备均与第一服务器断开长连接,或者,距离开始时刻达到预设时长阈值时,停机;开始时刻是指开始发送停机消息的时刻。
在一个实施例中,获取模块1001具体用于:向分发服务器发送请求消息,请求消息用于请求能够替代第一服务器的服务器的连接信息;接收分发服务器返回的连接信息。
在一个实施例中,发送模块1002具体用于:每间隔预设时长间隔阈值,向与第一服务器连接的所有终端设备发送一次停机消息。
本申请实施例可以根据上述方法示例对终端设备或服务器进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,例如检测模块、处理模块、显示模块等,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的终端设备,用于执行上述连接切换方法中终端设备的步骤,因此可以达到与上述实现方法相同的效果。
本实施例提供的服务器,用于执行上述服务器停机方法中第一服务器的步骤,因此可以达到与上述实现方法相同的效果。
在一个实施例中,还提供一种通信系统,包括上述终端设备和第一服务器。可选的,该通信系统还可以包括上述第二服务器和分发服务器。
在采用集成的模块的情况下,终端设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对终端设备的动作进行控制管理。存储模块可以用于支持终端设备执行存储程序代码和数据等。通信模块,可以用于支持终端设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他终端设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的终端设备可以为具有图4所示结构的设备。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的连接切换方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的连接切换方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的连接切换方法。
其中,本实施例提供的终端设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (16)

1.一种连接切换方法,所述方法由终端设备执行,其特征在于,所述终端设备与第一服务器之间已建立第一长连接,所述第一长连接用于实现目标业务,所述方法包括:
通过所述第一长连接接收来自所述第一服务器的停机消息,所述停机消息指示第一服务器处于停机准备状态,所述停机消息中携带第二服务器的连接信息;
响应于所述停机消息,断开所述第一长连接;
根据所述连接信息,尝试与所述第二服务器建立第二长连接;
若所述第二长连接建立成功,则通过所述第二长连接实现所述目标业务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述停机消息,将第一标记位的值设置为第一值;
所述根据所述连接信息,尝试与所述第二服务器建立第二长连接,包括:
若确定所述第一标记位的值为所述第一值,且剩余重试次数不等于0,则根据所述连接信息,尝试建立所述第二长连接,并将所述剩余重试次数减1,直至所述第二长连接建立成功或所述剩余重试次数等于0;其中,所述剩余重试次数的初始值大于0。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述剩余重试次数等于0,则将所述剩余重试次数设置为所述初始值;
若所述第二长连接建立成功,则将所述第一标记位的值设置为第二值,并将所述剩余重试次数设置为所述初始值;所述第二值不同于所述第一值。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
若所述剩余重试次数等于0,则释放所述目标业务的业务数据。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述方法还包括:
在确定所述第一标记位的值为所述第一值的情况下,保存所述目标业务的业务数据;
在确定所述第一标记位的值为第二值的情况下,基于所述第二长连接将保存的所述目标业务的业务数据发送至所述第二服务器;所述第二值不同于所述第一值。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述断开所述第一长连接之后,所述方法还包括:
将第二标记位的值设置为第三值;
在确定第二标记位的值为所述第三值的情况下,停止对所述第一长连接的网络监听,并释放所述第一长连接的数据。
7.根据权利要求6所述的方法,其特征在于,所述停止对所述第一长连接的网络监听,并释放所述第一长连接的数据,包括:
停止对所述第一长连接的网络监听,并生成监听结束事件;
在确定存在所述监听结束事件的情况下,释放所述第一长连接的数据。
8.根据权利要求7所述的方法,其特征在于,所述根据所述连接信息,尝试与所述第二服务器建立第二长连接,包括:
在确定存在所述监听结束事件的情况下,根据所述连接信息,尝试与所述第二服务器建立第二长连接。
9.根据权利要求7或8所述的方法,其特征在于,所述生成监听结束事件之后,所述方法还包括:
将所述第二标记位的值设置为第四值,所述第四值不同于所述第三值。
10.根据权利要求1至8中任一项所述的方法,所述连接信息包括所述第二服务器的统一资源定位器URL和接口。
11.一种服务器停机方法,其特征在于,所述方法由第一服务器执行,其特征在于,所述第一服务器与至少一个终端设备长连接,所述方法包括:
获取第二服务器的连接信息,所述第二服务器为能够替代所述第一服务器的服务器;
向各个所述终端设备发送停机消息,所述停机消息指示第一服务器处于停机准备状态,所述停机消息中携带所述连接信息,所述连接信息用于所述终端设备与所述第二服务器建立长连接;
当所有所述终端设备均与所述第一服务器断开长连接,或者,距离开始时刻达到预设时长阈值时,停机;所述开始时刻是指开始发送所述停机消息的时刻。
12.根据权利要求11所述的方法,其特征在于,所述获取第二服务器的连接信息,包括:
向分发服务器发送请求消息,所述请求消息用于请求所述连接信息;
接收所述分发服务器返回的所述连接信息。
13.根据权利要求11或12所述的方法,其特征在于,所述向各个所述终端设备发送停机消息,包括:
每间隔预设时长间隔阈值,向与所述第一服务器连接的所有终端设备发送一次所述停机消息。
14.一种终端设备,其特征在于,包括:处理器、存储器和接口;
所述处理器、所述存储器和所述接口相互配合,使得所述终端设备执行如权利要求1至10中任一项所述的方法。
15.一种服务器,其特征在于,包括:处理器、存储器和接口;
所述处理器、所述存储器和所述接口相互配合,使得所述终端设备执行如权利要求11至13中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至10中任一项所述的方法,或者执行权利要求11至13中任一项所述的方法。
CN202211349201.3A 2022-10-31 2022-10-31 连接切换方法、服务器停机方法、终端设备和服务器 Pending CN116708533A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211349201.3A CN116708533A (zh) 2022-10-31 2022-10-31 连接切换方法、服务器停机方法、终端设备和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211349201.3A CN116708533A (zh) 2022-10-31 2022-10-31 连接切换方法、服务器停机方法、终端设备和服务器

Publications (1)

Publication Number Publication Date
CN116708533A true CN116708533A (zh) 2023-09-05

Family

ID=87832786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211349201.3A Pending CN116708533A (zh) 2022-10-31 2022-10-31 连接切换方法、服务器停机方法、终端设备和服务器

Country Status (1)

Country Link
CN (1) CN116708533A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938803A (zh) * 2010-09-08 2011-01-05 宇龙计算机通信科技(深圳)有限公司 通信链路保持方法、通信链路保持系统和移动终端
CN104486327A (zh) * 2014-12-10 2015-04-01 北京奇虎科技有限公司 页面与长连接服务器间的通信方法及客户端
CN106686066A (zh) * 2017-02-10 2017-05-17 上海斐讯数据通信技术有限公司 一种长连接服务器升级方法及系统
CN107395686A (zh) * 2017-06-28 2017-11-24 甘棠软件系统(上海)有限公司 切换长连接的方法、设备和系统
CN109660584A (zh) * 2017-10-12 2019-04-19 阿里巴巴集团控股有限公司 一种客户端与服务器建立长连接的方法及通信方法与通信系统
CN113162956A (zh) * 2020-01-22 2021-07-23 华为技术有限公司 一种建立通信连接的方法、装置和网络设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938803A (zh) * 2010-09-08 2011-01-05 宇龙计算机通信科技(深圳)有限公司 通信链路保持方法、通信链路保持系统和移动终端
CN104486327A (zh) * 2014-12-10 2015-04-01 北京奇虎科技有限公司 页面与长连接服务器间的通信方法及客户端
CN106686066A (zh) * 2017-02-10 2017-05-17 上海斐讯数据通信技术有限公司 一种长连接服务器升级方法及系统
CN107395686A (zh) * 2017-06-28 2017-11-24 甘棠软件系统(上海)有限公司 切换长连接的方法、设备和系统
CN109660584A (zh) * 2017-10-12 2019-04-19 阿里巴巴集团控股有限公司 一种客户端与服务器建立长连接的方法及通信方法与通信系统
CN113162956A (zh) * 2020-01-22 2021-07-23 华为技术有限公司 一种建立通信连接的方法、装置和网络设备

Similar Documents

Publication Publication Date Title
CN111405681B (zh) Wi-Fi Aware的建链方法、系统、电子设备和存储介质
WO2021017894A1 (zh) 一种使用远程sim模块的方法及电子设备
WO2021098533A1 (zh) 一种连接建立方法及终端设备
EP4243556A1 (en) Method for monitoring link and terminal device
WO2023005282A9 (zh) 一种消息推送方法及装置
WO2021179990A1 (zh) 一种应用服务器的访问方法及终端
CN113518393B (zh) 一种网络图标的显示方法及终端
CN117278542A (zh) 资源访问方法和终端设备
CN116708533A (zh) 连接切换方法、服务器停机方法、终端设备和服务器
CN113939043A (zh) 一种网络图标的显示方法及设备
CN117014984B (zh) 通信方法、电子设备及计算机可读存储介质
CN117177386B (zh) 网络连接方法、电子设备及计算机可读存储介质
CN114928899B (zh) 物理链路的建立方法和电子设备
CN110837439A (zh) 一种文件备份方法、终端与通信系统
CN117156597B (zh) 基于自组网的设备处理方法、设备以及存储介质
CN116647936B (zh) 一种pdn连接方法和通信系统
CN116709582B (zh) 辅助通话的方法和电子设备
CN115767602B (zh) 设备协议子系统异常自动纠错方法和电子设备
WO2023088106A1 (zh) 降低功耗的方法和电子设备
CN114765605B (zh) 资源访问方法和终端设备
WO2023124791A1 (zh) 蜂窝网络的控制方法和电子设备
CN114625428B (zh) 一种应用异常的处理方法及电子设备
EP4283464A1 (en) Distributed device capability virtualization method, medium, and electronic device
EP4336865A1 (en) Interaction method and apparatus for electronic device
CN116567054A (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