CN115103001B - 一种通信方法、装置及电子设备 - Google Patents
一种通信方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115103001B CN115103001B CN202210508344.8A CN202210508344A CN115103001B CN 115103001 B CN115103001 B CN 115103001B CN 202210508344 A CN202210508344 A CN 202210508344A CN 115103001 B CN115103001 B CN 115103001B
- Authority
- CN
- China
- Prior art keywords
- instruction
- server
- client
- preset
- communication request
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 178
- 238000004891 communication Methods 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000004044 response Effects 0.000 claims abstract description 67
- 230000000875 corresponding effect Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 20
- 230000002596 correlated effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static 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/141—Setup of application sessions
-
- 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/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本公开涉及一种通信方法、装置及电子设备。其中,该方法应用于客户端,包括:向服务端发送通信请求;在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间。通过本公开,可以实现客户端与服务端的即时通信,保证客户端能够即时接收到服务端发出的指令并作出响应。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种通信方法、装置及电子设备。
背景技术
传统的即时通信方法中,一般由客户端控制发起指令的时间间隔,如果间隔时间过长,会造成即时通信不即时;如果间隔时间过短,则将给服务端带来较大的性能压力。
发明内容
有鉴于此,本公开提出了一种通信方法、装置及电子设备,可以实现客户端与服务端的即时通信,保证客户端能够即时接收到服务端发出的指令并作出响应。
根据本公开的一方面,提供了一种通信方法,应用于客户端,所述方法包括:
向服务端发送通信请求;
在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间。
在一种可能的实现方式中,所述方法还包括:
在所述预设超时时间内未接收到来自所述服务端的指令的情况下,向所述服务端重新发送所述通信请求。
在一种可能的实现方式中,所述方法还包括:
在接收到来自所述服务端的第一错误指令的情况下,根据在接收到所述第一错误指令之前所接收的来自所述服务端的错误指令的次数,确定所述第一错误指令对应的时间间隔;
按照所述第一错误指令对应的时间间隔向所述服务端重新发送所述通信请求;其中,所述错误指令为所述客户端与所述服务端预先未约定的指令。
在一种可能的实现方式中,在所述错误指令的次数未超过预设阈值的情况下,所述第一错误指令对应的时间间隔与所述错误指令的次数正相关;
在所述错误指令的次数超过所述预设阈值的情况下,所述第一错误指令对应的时间间隔为预设时间间隔。
在一种可能的实现方式中,所述方法还包括:在所述预设超时时间内接收到来自所述服务端的正确指令的情况下,重置所述错误指令的次数。
在一种可能的实现方式中,所述预设响应时间表示服务端接收到所述通信请求至发出所述心跳指令的时间。
根据本公开的另一方面,提供了一种通信方法,应用于服务端,所述方法包括:
接收来自客户端的通信请求;
在预设响应时间内检测到用户指令的情况下,将所述用户指令发送给所述客户端;
在所述预设响应时间内未检测到用户指令的情况下,向所述客户端发送心跳指令,以使所述客户端重新发送所述通信请求。
根据本公开的另一方面,提供了一种通信装置,包括:
发送模块,用于向服务端发送通信请求;
正确指令处理模块,用于在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间。
在一种可能的实现方式中,所述装置还包括:
超时处理模块,用于在所述预设超时时间内未接收到来自所述服务端的指令的情况下,向所述服务端重新发送所述通信请求。
在一种可能的实现方式中,所述装置还包括:
错误指令处理模块,用于在接收到来自所述服务端的第一错误指令的情况下,根据在接收到所述第一错误指令之前所接收的来自所述服务端的错误指令的次数,确定所述第一错误指令对应的时间间隔;按照所述第一错误指令对应的时间间隔向所述服务端重新发送所述通信请求;其中,所述错误指令为所述客户端与所述服务端预先未约定的指令。
在一种可能的实现方式中,在所述错误指令的次数未超过预设阈值的情况下,所述第一错误指令对应的时间间隔与所述错误指令的次数正相关;在所述错误指令的次数超过所述预设阈值的情况下,所述第一错误指令对应的时间间隔为预设时间间隔。
在一种可能的实现方式中,所述错误指令处理模块,还用于在所述预设超时时间内接收到来自所述服务端的正确指令的情况下,重置所述错误指令的次数。
在一种可能的实现方式中,所述预设响应时间表示服务端接收到所述通信请求至发出所述心跳指令的时间。
根据本公开的另一方面,提供了一种通信装置,包括:
接收模块,用于接收来自客户端的通信请求;
响应模块,用于在预设响应时间内检测到用户指令的情况下,将所述用户指令发送给所述客户端;
所述响应模块,还用于在所述预设响应时间内未检测到用户指令的情况下,向所述客户端发送心跳指令,以使所述客户端重新发送所述通信请求。
根据本公开的另一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
根据本公开的另一方面,提供了一种通信系统,包括客户端与服务端。
本公开实施例通过向服务端发送通信请求;在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间;从而可以实现客户端与服务端的即时通信,保证客户端能够即时接收到服务端发出的指令并作出响应。作为一个示例,可以设定预设超时时间,在预设超时时间内接收到来自服务端的正确指令的情况下,客户端可以立即向服务端重新发送通信请求,保证了客户端能够即时接收到服务端发送的指令并作出响应,解决了客户端与服务端即时通信过程中可能产生的延时问题,从而保证了客户端与服务端的即时通信;在预设超时时间内未接收到来自服务端的指令的情况下,客户端可以向服务端重新发送通信请求,解决了客户端与服务端即时通信过程中由于网络故障或服务器故障等原因造成服务端响应超时的问题,保证了遇到异常情况时通信的稳定性。作为另一个示例,客户端在接收到来自服务端的第一错误指令的情况下,可以根据在接收到所述第一错误指令之前所接收的来自服务端的错误指令的次数,确定所述第一错误指令对应的时间间隔;客户端可以按照所述第一错误指令对应的时间间隔向服务端重新发送所述通信请求;这样可以在服务端异常响应的情况下,防止客户端频繁发送通信请求给服务端带来性能压力,从而缓解服务器压力,并且可以在不给服务端带来性能压力的情况下保证客户端与服务端的即时通信。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的通信方法的流程图。
图2示出根据本公开一实施例的通信方法的流程图。
图3示出根据本公开一实施例的通信方法的流程图。
图4示出根据本公开一实施例的通信装置的框图。
图5示出根据本公开一实施例的通信装置的框图。
图6示出根据本公开一实施例的通信系统的框图。
图7示出根据本公开一示例性实施例的电子装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的通信方法的流程图。如图1所示,本公开实施例示出了客户端实施该通信方法的过程,包括以下步骤:
S101、向服务端发送通信请求。
示例性地,通信请求可以为HTTP GET请求;客户端可以发起HTTP GET请求到服务端指定的接口地址,HTTP GET请求中可以携带客户端的id及时间戳。
S102、在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间。
示例性地,所述预设响应时间表示服务端接收到所述通信请求至发出心跳指令的时间。可以理解的是,通信请求本质可以为一个心跳指令,在客户端向服务端发送通信请求后,等待服务端响应;服务端可以在接收到该通信请求后对该通信请求作出响应,即服务端可以在未收到其他指令的情况下,在预设响应时间后向客户端发出心跳指令。
其中,预设超时时间表示客户端向服务端发送多次通信请求的间隔时间;可以理解的是,客户端可以向服务端发送多次通信请求,从而判断服务端与客户端是否存活。
需要说明的是,预设超时时间及预设响应时间的数值可以根据实际需要进行设定,对此不作限定,例如,预设超时时间可以设定为40s;预设响应时间可以设定为30s。示例性的,客户端如果在40秒内接收到来自服务端的正确指令则立即重新发起通信请求。
其中,正确指令可以为客户端与服务端事先约定好的指令。示例性地,用户指令可以是HTTP指令报文,如重启设备(reboot)。心跳指令可以是HTTP心跳报文,如心跳(heartbeat)。
示例性地,如果客户端在预设超时时间内接收到来自服务端的用户指令,客户端可以立即向服务端重新发送通信请求;此外,客户端还可以立即执行对应该用户指令的操作,所述对应该用户指令的操作可以由服务端与客户端预先进行约定;例如,用户指令可以为重启设备的指令,客户端接收到来自服务端的该重启设备的指令后,可以立即重启设备。
示例性地,如果客户端在预设超时时间内接收到来自服务端的心跳指令,客户端可以立即向服务端重新发送通信请求。
这样,客户端在预设超时时间内接收到来自服务端的正确指令后,可以立即执行对应指令的操作或立即重新发送通信请求,保证了客户端能够即时接收到服务端发送的指令并作出响应,解决了客户端与服务端即时通信过程中可能产生的延时问题,从而保证了客户端与服务端即时通信的即时性。
在一种可能的实现方式中,该通信方法还包括:在所述预设超时时间内未接收到来自所述服务端的指令的情况下,向所述服务端重新发送所述通信请求。
可以理解的是,在客户端向服务端发送通信请求后,服务端在预设响应时间内响应该通信请求。相关技术中,遇到网络故障或服务端故障时,如果长时间收不到服务端回应时,客户端可能无法自动重新发起通信请求;本申请实施例中,如果有特殊情况(例如网络故障或服务器故障等)导致在预设超时时间内客户端没有接收到来自服务端的响应,客户端可以在达到预设超时时间后重新发送通信请求。这样,通过设定预设超时时间,且预设超时时间大于或等于预设响应时间;客户端可以在服务端响应超时的情况下自动重新发起通信请求,解决了客户端与服务端即时通信过程中由于网络故障或服务器故障等原因造成服务端响应超时的问题,保证了遇到异常情况时通信的稳定性。
在一个实施例中,预设超时时间可以设定为40s,客户端向服务端发送通信请求后,如果由于丢包导致服务端的响应不能发送至客户端,使得客户端在发送通信请求后的40s内没有接收到来自服务端的响应,客户端可以在在发送通信请求40s后向服务端重新发送通信请求。通过这种方式可以解决客户端与服务端即时通信过程中可能产生的丢包问题。
图2示出根据本公开一实施例的通信方法的流程图。如图2所示,本公开实施例示出了客户端实施该通信方法的过程,以下步骤可以在上述步骤S101后执行:
S201、在接收到来自所述服务端的第一错误指令的情况下,根据在接收到所述第一错误指令之前所接收的来自所述服务端的错误指令的次数,确定所述第一错误指令对应的时间间隔。
其中,第一错误指令为客户端接收到来自服务端的一个或多个错误指令中任一错误指令;示例性地,客户端向服务端发送通信请求之后,可能连续多次接收到来自服务端的错误指令,第一错误指令即为该连续多次接收到来自服务端的错误指令中任一错误指令。
其中,错误指令为所述客户端与所述服务端预先未约定的指令。示例性地,所述错误指令可以是客户端与服务端预先未约定的任意指令。例如,所述错误指令可以是服务端遇到性能瓶颈返回HTTP 503错误。
示例性地,在客户端向服务端每发送一次通信请求后,可以记录接收到来自所述服务端的错误指令的次数,例如,可以从0开始计数;从而在接收到第一错误指令时,可以得到之前所接收的来自服务端的错误指令的次数。
在一种可能的实现方式中,在所述预设超时时间内接收到来自所述服务端的正确指令的情况下,客户端可以重置所述错误指令的次数;示例性地,可以将所述错误指令的次数重置为0。
S202、按照所述第一错误指令对应的时间间隔向所述服务端重新发送所述通信请求。
在一种可能的实现方式中,在所述错误指令的次数未超过预设阈值的情况下,所述第一错误指令对应的时间间隔与所述错误指令的次数正相关;在所述错误指令的次数超过所述预设阈值的情况下,所述第一错误指令对应的时间间隔为预设时间间隔。
示例性地,在接收到所述第一错误指令之前连续接收到来自服务端的错误指令的次数未超过预设阈值的情况下,随着所述错误指令的次数的增加,第一错误指令对应的时间间隔可以依次递增,即客户端可以按照递增的时间间隔向服务端重新发送通信请求,这样,可以防止客户端频繁发送通信请求给服务端带来性能压力,从而缓解服务器压力;在接收到所述第一错误指令之前连续接收到来自服务端的错误指令的次数超过预设阈值的情况下,客户端可以按照预设时间间隔向服务端重新发送通信请求,这样可以在不给服务端带来性能压力的情况下保证客户端与服务端的即时通信。不同于客户端收到服务端的错误指令时,客户端再次立即重新发起通信请求的方式,这种方式给服务端带来更大的性能压力的问题;本申请实施例中,根据在接收到第一错误指令之前所接收的来自服务端的错误指令的次数,确定第一错误指令对应的时间间隔,并按照第一错误指令对应的时间间隔向所述服务端重新发送所述通信请求;有效避免了客户端频繁访问给服务端带来性能压力,保证了遇到异常情况时通信的稳定性。
需要说明的是,所述预设阈值和预设时间间隔可以由本领域技术人员根据实际需要进行设定,对此不作限定。在一个实施例中,预设阈值可以设定为4次,预设时间间隔可以设定为10s。如果客户端在接收到来自服务端的第一错误指令之前所接收的来自服务端的错误指令的次数为0次,即客户端第一次接收到来自服务端的错误指令,第一错误指令对应的时间间隔可以为2s,即客户端可以隔2s向服务端重新发送通信请求;如果客户端在接收到来自服务端的第一错误指令之前所接收的来自服务端的错误指令的次数为1次,即客户端连续两次接收到来自服务端的错误指令,第一错误指令对应的时间间隔可以为4s,即客户端可以隔4s向服务端重新发送通信请求;以此类推,在所述错误指令的次数未超过预设阈值的情况下,所述错误指令的次数每增加一次,第一错误指令对应的时间间隔可以增加2s;在所述错误指令的次数达到预设阈值4次的情况下,即客户端连续五次接收到来自服务端的错误指令,第一错误指令对应的时间间隔可以为10s,即达到预设时间间隔,客户端可以隔10s向服务端重新发送通信请求;在所述错误指令的次数超过预设阈值的情况下,第一错误指令对应的时间间隔可以为预设时间间隔10s,即客户端可以隔10s向服务端重新发送通信请求;例如,如果客户端在接收到来自服务端的第一错误指令之前所接收的来自服务端的错误指令的次数为5次,即客户端连续六次接收到来自服务端的错误指令,客户端可以隔10s向服务端重新发送通信请求;再例如,如果客户端在接收到来自服务端的第一错误指令之前所接收的来自服务端的错误指令的次数为10次,即客户端连续十一次接收到来自服务端的错误指令,客户端可以隔10s向服务端重新发送通信请求。这样,客户端在向服务端发出通信请求后,如果连续接收到错误指令,则可以根据接收的来自服务端的错误指令的次数分别依次按照不小于2、4、6、8、10秒的间隔重新发起通信请求。通过增加重新发起通信请求的时间间隔,从而可以防止客户端频繁访问给服务端带来性能压力,缓解服务端压力,同时,最长时间间隔设定为10s,从而在保证不会给服务器带来压力的同时,保证通信的稳定性。
图3示出根据本公开一实施例的通信方法的流程图。如图1所示,本公开实施例示出了服务端实施该通信方法的过程,包括以下步骤:
S301、接收来自客户端的通信请求。
示例性地,服务端可以采用支持多线程访问的web应用服务,例如.NET、PHP、JAVA。
示例性地,服务端接收来自客户端的通信请求之后,可以挂起进程,循环检测指令队列;所述指令为用户指令。示例性地,服务端可以设置有管理页面,用户可以通过该管理页面,向服务端发出用户指令。
S302、在预设响应时间内检测到用户指令的情况下,将所述用户指令发送给所述客户端。
示例性地,服务端接收来自客户端的通信请求后,如果在预设响应时间内检测到用户发出的即时指令,服务端可以立即将检测到的用户指令以HTTP指令报文的形式发送给客户端。例如,服务端接收来自客户端的通信请求后,在预设响应时间内检测到用户发出的重启设备的指令,服务端可以立即发送reboot指令给客户端,以便客户端执行对应指令的操作。所述预设响应时间可以根据实际需要进行设定,对此不作限定;例如,预设响应时间可以设定为30s。这样保证了服务端与客户端通信的即时性。
S303、在所述预设响应时间内未检测到用户指令的情况下,向所述客户端发送心跳指令,以使所述客户端重新发送所述通信请求。
在一种可能的实现方式中,所述预设响应时间表示服务端接收到所述通信请求至发出所述心跳指令的时间。即服务端在接收到通信请求,而没有接收到用户指令的情况下,最长等待预设响应时间,响应该通信请求,向客户端发送心跳指令。
示例性地,服务端接收来自客户端的通信请求后,如果在预设响应时间内没有检测到用户发出的指令,服务端可以在预设响应时间后返回约定好的HTTP心跳报文回应,例如heartbeat,发送给客户端,以使客户端可以重新发送通信请求。这样保证了遇到异常情况时通信的稳定性。同时,通过这一方式可以解决由于网络故障或服务器故障等原因造成的服务端响应过快的问题。
在一个实施例中,预设响应时间可以设定为30s。服务端接收来自客户端的通信请求后,可以挂起进程循环检测指令队列;如果在30s内检测到用户发出的指令,服务端可以立即将检测到的用户指令发送给客户端;如果在30s内没有检测到用户发出的指令,服务端可以在30s后发送心跳指令给客户端,以使客户端重新发送通信请求。通过这种方式可以保证服务端与客户端通信的即时性,也可以保证遇到异常情况时通信的稳定性,同时可以解决由于网络故障或服务器故障等原因造成的服务端响应过快的问题。
示例性地,在服务端遇到性能瓶颈时,可能向客户端返回HTTP 503错误等错误指令。
本公开实施例通过向服务端发送通信请求;在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间;从而可以实现客户端与服务端的即时通信。
图4示出根据本公开一实施例的通信装置的框图。该通信装置可以设置于客户端。如图4所示,本公开实施例所述通信装置,包括:
发送模块401,用于向服务端发送通信请求;
正确指令处理模块402,用于在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间。
在一种可能的实现方式中,所述装置还包括:
超时处理模块,用于在所述预设超时时间内未接收到来自所述服务端的指令的情况下,向所述服务端重新发送所述通信请求。
在一种可能的实现方式中,所述装置还包括:
错误指令处理模块,用于在接收到来自所述服务端的第一错误指令的情况下,根据在接收到所述第一错误指令之前所接收的来自所述服务端的错误指令的次数,确定所述第一错误指令对应的时间间隔;按照所述第一错误指令对应的时间间隔向所述服务端重新发送所述通信请求;其中,所述错误指令为所述客户端与所述服务端预先未约定的指令。
在一种可能的实现方式中,在所述错误指令的次数未超过预设阈值的情况下,所述第一错误指令对应的时间间隔与所述错误指令的次数正相关;在所述错误指令的次数超过所述预设阈值的情况下,所述第一错误指令对应的时间间隔为预设时间间隔。
在一种可能的实现方式中,所述错误指令处理模块,还用于在所述预设超时时间内接收到来自所述服务端的正确指令的情况下,重置所述错误指令的次数。
在一种可能的实现方式中,所述预设响应时间表示服务端接收到所述通信请求至发出所述心跳指令的时间。
图5示出根据本公开一实施例的通信装置的框图。该通信装置可以设置于服务端。如图5所示,本公开实施例所述通信装置,包括:
接收模块501,用于接收来自客户端的通信请求;
响应模块502,用于在预设响应时间内检测到用户指令的情况下,将所述用户指令发送给所述客户端;
所述响应模块502,还用于在所述预设响应时间内未检测到用户指令的情况下,向所述客户端发送心跳指令,以使所述客户端重新发送所述通信请求。
图6示出根据本公开一实施例的通信系统的框图。如图6所示,本公开实施例所述通信系统,包括客户端601和服务端602;其中,客户端601可以用于执行上述客户端侧通信方法实施例所描述的通信方法;服务端602可以用于执行上述服务端侧通信方法实施例所描述的通信方法。示例性地,客户端601可以配置有上述图4所示的通信装置,服务端602可以配置有上述图5所示的通信装置。
其中,客户端601可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。服务端602可以为本地服务器、云端服务器等。
作为一个示例,客户端601可以为法院的智能文件流转柜或智能集中存储柜等中的客户端,相应的服务端602可以为法院的智能文件流转柜或智能集中存储柜等中的服务端。
作为一个示例,采用上述实施例所示的即时通信方式,正常运行时客户端601可以即时收到服务端602发出的指令;遇到服务端602响应超时时,客户端601最大重发请求间隔为40秒;遇到服务端602响应异常时,客户端601重发请求间隔为不小于2—10秒。以上方案既保证了客户端601与服务端602即时通信的即时性,也保证了遇到异常情况时通信的稳定性。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
图7是根据一示例性实施例示出的一种电子装置1900的框图。例如,装置1900可以被提供为一服务器或终端设备。参照图7,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种通信方法,其特征在于,应用于客户端,所述方法包括:
向服务端发送通信请求;
在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间;所述服务端在所述预设响应时间内检测到所述用户指令的情况下,将所述用户指令发送给所述客户端;所述服务端在所述预设响应时间内未检测到所述用户指令的情况下,向所述客户端发送所述心跳指令。
2.根据权利要求1所述的通信方法,其特征在于,所述方法还包括:
在所述预设超时时间内未接收到来自所述服务端的指令的情况下,向所述服务端重新发送所述通信请求。
3.根据权利要求1或2所述的通信方法,其特征在于,所述方法还包括:
在接收到来自所述服务端的第一错误指令的情况下,根据在接收到所述第一错误指令之前所接收的来自所述服务端的错误指令的次数,确定所述第一错误指令对应的时间间隔;
按照所述第一错误指令对应的时间间隔向所述服务端重新发送所述通信请求;其中,所述错误指令为所述客户端与所述服务端预先未约定的指令。
4.根据权利要求3所述的通信方法,其特征在于,在所述错误指令的次数未超过预设阈值的情况下,所述第一错误指令对应的时间间隔与所述错误指令的次数正相关;
在所述错误指令的次数超过所述预设阈值的情况下,所述第一错误指令对应的时间间隔为预设时间间隔。
5.根据权利要求3所述的通信方法,其特征在于,所述方法还包括:在所述预设超时时间内接收到来自所述服务端的正确指令的情况下,重置所述错误指令的次数。
6.根据权利要求1所述的通信方法,其特征在于,所述预设响应时间表示服务端接收到所述通信请求至发出所述心跳指令的时间。
7.一种通信方法,其特征在于,应用于服务端,所述方法包括:
接收来自客户端的通信请求;
在预设响应时间内检测到用户指令的情况下,将所述用户指令发送给所述客户端;
在所述预设响应时间内未检测到用户指令的情况下,向所述客户端发送心跳指令;其中,所述客户端在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;所述正确指令包括所述心跳指令和/或所述用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间。
8.一种通信装置,其特征在于,包括:
发送模块,用于向服务端发送通信请求;
正确指令处理模块,用于在预设超时时间内接收到来自所述服务端的正确指令的情况下,向所述服务端重新发送所述通信请求;其中,所述正确指令包括心跳指令和/或用户指令;所述预设超时时间大于或等于所述服务端针对所述通信请求做出反馈的预设响应时间;所述服务端在所述预设响应时间内检测到所述用户指令的情况下,将所述用户指令发送给所述通信装置;所述服务端在所述预设响应时间内未检测到所述用户指令的情况下,向所述通信装置发送所述心跳指令。
9.一种通信装置,其特征在于,包括:
接收模块,用于接收来自客户端的通信请求;
响应模块,用于在预设响应时间内检测到用户指令的情况下,将所述用户指令发送给所述客户端;
所述响应模块,还用于在所述预设响应时间内未检测到用户指令的情况下,向所述客户端发送心跳指令;其中,所述客户端在预设超时时间内接收到来自所述通信装置的正确指令的情况下,向所述通信装置重新发送所述通信请求;所述正确指令包括所述心跳指令和/或所述用户指令;所述预设超时时间大于或等于所述通信装置针对所述通信请求做出反馈的预设响应时间。
10.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至6中任意一项所述的方法,或者实现权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210508344.8A CN115103001B (zh) | 2022-05-10 | 2022-05-10 | 一种通信方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210508344.8A CN115103001B (zh) | 2022-05-10 | 2022-05-10 | 一种通信方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115103001A CN115103001A (zh) | 2022-09-23 |
CN115103001B true CN115103001B (zh) | 2024-03-08 |
Family
ID=83287833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210508344.8A Active CN115103001B (zh) | 2022-05-10 | 2022-05-10 | 一种通信方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115103001B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829139A (zh) * | 2006-03-30 | 2006-09-06 | 阿里巴巴公司 | 一种消息重发方法和系统 |
CN101552740A (zh) * | 2009-05-14 | 2009-10-07 | 腾讯科技(北京)有限公司 | 即时通信系统、客户端、服务器及判定在线状态的方法 |
CN101917437A (zh) * | 2010-08-20 | 2010-12-15 | 迈普通信技术股份有限公司 | 基于sip的用户离线检测方法以及sip用户状态检测系统 |
CN103095550A (zh) * | 2011-11-01 | 2013-05-08 | 华为技术有限公司 | 一种即时通信方法、系统及装置 |
CN103684707A (zh) * | 2013-12-20 | 2014-03-26 | 广州华多网络科技有限公司 | 服务端、用户端消息传输处理方法、消息传输方法及系统 |
CN107071051A (zh) * | 2017-05-16 | 2017-08-18 | 上海上讯信息技术股份有限公司 | 用于命令执行的方法与设备 |
CN108199914A (zh) * | 2017-12-27 | 2018-06-22 | 杭州迪普科技股份有限公司 | 服务端状态检测方法和装置 |
CN111818159A (zh) * | 2020-07-08 | 2020-10-23 | 腾讯科技(深圳)有限公司 | 数据处理节点的管理方法、装置、设备及存储介质 |
CN113422780A (zh) * | 2021-07-02 | 2021-09-21 | 的卢技术有限公司 | 基于tcp协议长连接的心跳间隔调整方法、装置 |
CN113472606A (zh) * | 2021-06-29 | 2021-10-01 | 聚好看科技股份有限公司 | 一种心跳超时检测方法、服务器及电子设备 |
CN113760509A (zh) * | 2021-08-25 | 2021-12-07 | 北京百度网讯科技有限公司 | 一种超时管理方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004342084A (ja) * | 2003-04-24 | 2004-12-02 | Seiko Epson Corp | 自発的にステータス通知を行うサービス装置 |
-
2022
- 2022-05-10 CN CN202210508344.8A patent/CN115103001B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829139A (zh) * | 2006-03-30 | 2006-09-06 | 阿里巴巴公司 | 一种消息重发方法和系统 |
CN101552740A (zh) * | 2009-05-14 | 2009-10-07 | 腾讯科技(北京)有限公司 | 即时通信系统、客户端、服务器及判定在线状态的方法 |
CN101917437A (zh) * | 2010-08-20 | 2010-12-15 | 迈普通信技术股份有限公司 | 基于sip的用户离线检测方法以及sip用户状态检测系统 |
CN103095550A (zh) * | 2011-11-01 | 2013-05-08 | 华为技术有限公司 | 一种即时通信方法、系统及装置 |
CN103684707A (zh) * | 2013-12-20 | 2014-03-26 | 广州华多网络科技有限公司 | 服务端、用户端消息传输处理方法、消息传输方法及系统 |
CN107071051A (zh) * | 2017-05-16 | 2017-08-18 | 上海上讯信息技术股份有限公司 | 用于命令执行的方法与设备 |
CN108199914A (zh) * | 2017-12-27 | 2018-06-22 | 杭州迪普科技股份有限公司 | 服务端状态检测方法和装置 |
CN111818159A (zh) * | 2020-07-08 | 2020-10-23 | 腾讯科技(深圳)有限公司 | 数据处理节点的管理方法、装置、设备及存储介质 |
CN113472606A (zh) * | 2021-06-29 | 2021-10-01 | 聚好看科技股份有限公司 | 一种心跳超时检测方法、服务器及电子设备 |
CN113422780A (zh) * | 2021-07-02 | 2021-09-21 | 的卢技术有限公司 | 基于tcp协议长连接的心跳间隔调整方法、装置 |
CN113760509A (zh) * | 2021-08-25 | 2021-12-07 | 北京百度网讯科技有限公司 | 一种超时管理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115103001A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3920477A1 (en) | Multi-link data transmission method and device, and storage medium | |
US9826035B2 (en) | Piecewise linear, probabilistic, backoff method for retrying message delivery in a cloud-based computing environment | |
CN109218389B (zh) | 处理业务请求的方法、装置和存储介质以及电子设备 | |
US20160277125A1 (en) | Information Transmission Method, Apparatus And System | |
CN108712320B (zh) | 消息推送方法及装置 | |
CN114039703B (zh) | 数据传输方法、装置、设备和介质 | |
CN104038845A (zh) | 报文传输方法及装置 | |
CN109802995B (zh) | 消息推送方法、装置、设备及存储介质 | |
JP7086188B2 (ja) | 無線通信方法及び端末デバイス | |
CN113595927A (zh) | 一种旁路模式下镜像流量的处理方法和装置 | |
EP3119044B1 (en) | Page insertion method and device | |
CN112905930A (zh) | 一种接口请求重发方法和装置 | |
CN115103001B (zh) | 一种通信方法、装置及电子设备 | |
US10412778B2 (en) | Data transmission method and apparatus for data service | |
EP2814201A1 (en) | Notification message sending method, system, manipulation apparatus, and terminal device | |
CN111385068A (zh) | 数据传输方法、装置、电子设备及通信系统 | |
EP3923524A1 (en) | Selecting a communication channel for omnichannel message delivery | |
CN107547437B (zh) | 应用识别方法及装置 | |
CN108111431B (zh) | 业务数据发送方法、装置、计算设备及计算机可读存储介质 | |
CN107431965A (zh) | 一种实现传输控制协议tcp传输的方法及装置 | |
EP3293924B1 (en) | Message processing method and device | |
JP2017517981A (ja) | アクセス端末によって監視周波数チャネル番号を切り換えるための方法、およびアクセス端末 | |
EP3346671A1 (en) | Service processing method and equipment | |
CN110888770B (zh) | 用于发送信息的方法和装置 | |
KR20170130801A (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 |