CN113612628B - 一种实现自适应跨网段双向通信的方法、系统 - Google Patents
一种实现自适应跨网段双向通信的方法、系统 Download PDFInfo
- Publication number
- CN113612628B CN113612628B CN202110779798.4A CN202110779798A CN113612628B CN 113612628 B CN113612628 B CN 113612628B CN 202110779798 A CN202110779798 A CN 202110779798A CN 113612628 B CN113612628 B CN 113612628B
- Authority
- CN
- China
- Prior art keywords
- request
- client
- server
- sent
- network
- 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 31
- 230000007175 bidirectional communication Effects 0.000 title claims abstract description 16
- 230000006854 communication Effects 0.000 claims abstract description 69
- 238000004891 communication Methods 0.000 claims abstract description 69
- 230000004044 response Effects 0.000 claims abstract description 40
- 230000000977 initiatory effect Effects 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 70
- 230000000903 blocking effect Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 7
- 230000006978 adaptation Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- 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
-
- 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
- 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
-
- 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/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种实现自适应跨网段双向通信的方法、系统,所述方法包括如下步骤:通过客户端与服务器端互相发起带有token的连接请求来探测网络拓扑结构是否互通;当网络单向通信时,客户端不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;服务器端按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息;当网络互通时,使用传统的原生Restful API进行通信。可以在不依赖第三方通信组件的情况下,实现对复杂网络环境的适应。因此在运用了本发明的逻辑后,对于底层通信库的选择将变得广泛而自由。
Description
技术领域
本发明涉及跨网段通信技术领域,具体涉及一种实现自适应跨网段双向通信的方法、系统。
背景技术
Restful API是一种基于HTTP协议的网络通信方案,因其简单高效的特点,广泛应用于各类软件的网络连接中。
然而,与其所依赖的HTTP通信方式类似,使用Restful API进行通信时,同样存在跨网段通信的单向性问题,即运行于下级网络主机中的程序可以主动对上级网络主机发起连接、并完成通信;但上级网络主机中的程序却无法主动连接下级网络主机。
这一限制性问题,对于传统的网页访问类应用,可以说是无关紧要的,因为在其业务场景下,存在于上级网络的服务器端,必然随时随地可以为存在于下级网络的客户端主机所访问,而并不存在由服务器端主动请求客户端主机的需要。然而,对于依赖HTTP进行底层通信的Restful API上层应用,应用场景和情况就没有网页访问这样简单乐观了。在实际应用场景下,网络拓扑结构可能是纷繁复杂、千变万化的,而身处其中的应用软件却必须克服重重困难,完成逻辑上的互联互通。而这一切,是传统的、原始的Restful API所无法满足和完成的。
发明内容
为了解决上述跨网段通信的问题、弥补Restful API继承自HTTP的先天通信模式的不足,提出了不改变Restful API基本原则定义、实现逻辑上跨网段通信,本发明提供一种实现自适应跨网段双向通信的方法、系统。
本发明的技术方案是:
一方面,本发明技术方案提供一种实现自适应跨网段双向通信的方法,包括如下步骤:
通过客户端与服务器端互相发起带有token的连接请求来探测网络拓扑结构是否互通;
当网络单向通信时,客户端不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;
服务器端按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息;
当网络互通时,使用传统的原生Restful API进行通信。
进一步的,所述的通过客户端与服务器端互相发起带有token的连接请求来探测网络拓扑结构是否互通的步骤包括:
客户端向服务器端发起带有token的HTTP请求;
判断客户端发送请求是否成功;
若否,判定为无效的网络环境,放弃通信;
若是,服务器端接收并解析客户端发送的请求,在请求中夹带客户端的token以请求连接的方式发送给客户端;
判断连接是否成功;
若否,判定为网络单向通信;
若是,客户端根据接收到的请求中的token判断网络是否互通。
为了避免因不同网段中存在IP地址或域名雷同而导致的误判,在此步骤中需要使用token作为状态研判依据。
进一步的,所述的客户端根据接收到的请求中的token判断网络是否互通的步骤包括:
客户端接收服务器端发送的请求;
提取请求中的token;
判断提取是否成功;
若否,判定为网络单向通信;
若是,将提取到的token与发送到服务器端的HTTP请求中的token进行匹配;
判断匹配是否成功;
若是,判定网络互通;
若否,判定为网络单向通信。
只有在token匹配的前提下,才会认定当前网络环境支持双向通信,否则认为是非法连接而按照单向网络通信。
进一步的,客户端不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息的步骤包括:
阻塞等待来自客户端体系内其他模块的待发送的消息;
判断等待是否超时;若是,生成空的心跳消息,若否,得到来自客户端体系内其他模块的待发送的消息;
将得到的消息、生成的空的心跳消息通过HTTP请求发送到服务器端。
进一步的,所述的服务器端按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息的步骤包括:
服务器端接收客户端发送的请求并对请求进行处理后产生回复消息;
同时阻塞等待服务器端体系内其他模块的待发送的消息;判断等待是否超时,若是,回复空响应消息,若否,得到服务器端体系内其他模块的待发送的消息并回复所得的消息;
将对请求处理后产生的回复消息、等待超时的空响应消息、服务器端体系内其他模块的消息叠加合并依次以请求回复的形式回到客户端。
当客户端在一定时间内没有需要发送到服务器端的数据时,则发送空的心跳请求;而当服务器端在一定时间内没有需要发送到客户端的数据时,则回复空的响应。通过这样的过程,可以在逻辑上实现广适应、低时延的跨网段双向通信。
进一步的,所述的将对请求处理后产生的回复消息、等待超时的空响应消息、服务器端体系内其他模块的消息叠加合并依次以请求回复的形式回到客户端的步骤之后还包括:
客户端对服务器端的请求回复进行处理。
因此在运用了本发明的逻辑后,对于底层通信库的选择将变得广泛而自由。
另一方面,本发明技术方案还提供一种实现自适应跨网段双向通信的系统,包括客户端和服务器端;
客户端,用于发起带有token的连接请求来探测网络拓扑结构中客户端到服务器端是否连通;当客户端到服务器端网络单向通信时,客户端,还用于不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;
服务器端,用于接收并解析客户端发送的请求,并发起带有token的连接请求来探测网络拓扑结构中服务器端到客户端是否连通;当客户端到服务器端网络单向通信时,服务器端,还用于按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息。
进一步的,客户端包括请求发送模块、发送请求判断模块、验证处理模块;服务器端包括第一接收模块、解析处理模块、连接判断模块;
请求发送模块,用于向服务器端发起带有token的HTTP请求;
发送请求判断模块,用于判断客户端发送请求是否成功;
第一接收模块,用于接收客户端请求发送模块发送的请求;
解析处理模块,用于对接收到的请求进行解析并在请求中夹带客户端的token以请求连接的方式发送给客户端;
连接判断模块,用于判断服务器端发送给客户端的请求连接是否连接成功;若连接失败,判定为网络单向通信;
验证处理模块,用于若连接判断模块输出连接成功时,接收服务器端发送的请求;并提取请求中的token;若提取失败,判定为网络单项通信;若提取成功,将提取到的token与发送到服务器端的HTTP请求中的token进行匹配,匹配成功,判定为网络互通,匹配不成功,判定为网络单项通信。
为了避免因不同网段中存在IP地址或域名雷同而导致的误判,在此步骤中需要使用token作为状态研判依据。只有在token匹配的前提下,才会认定当前网络环境支持双向通信,否则认为是非法连接而按照单向网络通信。
进一步的,客户端还包括消息处理模块;服务器端还包括第二接收模块、请求处理模块、等待处理模块和响应处理模块;
消息处理模块,用于阻塞等待来自客户端体系内其他模块的待发送的消息;判断等待是否超时;若是,生成空的心跳消息,若否,得到来自客户端体系内其他模块的待发送的消息;将得到的消息、生成的空的心跳消息通过HTTP请求发送到第二接收模块;
第二接收模块,用于接收客户端发送的请求;
请求处理模块,用于对第二接收模块接收的请求进行处理,产生回复消息;
等待处理模块,用于阻塞等待服务器端体系内其他模块的待发送的消息;判断等待是否超时,若是,回复空响应消息,若否,得到服务器端体系内其他模块的待发送的消息并回复所得的消息;
响应处理模块,用于将请求处理模块产生的回复消息、等待处理模块输出的等待超时的空响应消息、服务器端体系内其他模块的消息叠加合并依次以请求回复的形式回到客户端。
当客户端在一定时间内没有需要发送到服务器端的数据时,则发送空的心跳请求;而当服务器端在一定时间内没有需要发送到客户端的数据时,则回复空的响应。通过这样的过程,可以在逻辑上实现广适应、低时延的跨网段双向通信。
进一步的,客户端还包括业务处理模块,所述的业务处理模块,用于对服务器端的请求回复进行处理。
从以上技术方案可以看出,本发明具有以下优点:可以在不依赖冗重、复杂的第三方通信组件的情况下,实现对复杂网络环境的适应。由于HTTP通信是业界广泛使用且极为成熟的机制,因此在运用了本发明的逻辑后,对于底层通信库的选择将变得广泛而自由。同时,更为轻量级的实现方案,可以使得软件适应更复杂的用户需求。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明另一个实施例中探测网络拓扑结构是否互通的示意性流程图。
图3是本发明另一个实施例的方法中的示意性流程图。
图4是本发明一个实施例的系统的示意性框图。
图中,100-客户端,101-请求发送模块,102-发送请求判断模块,103-验证处理模块,104-消息处理模块,105-业务处理模块,200-服务器端,201-第一接收模块,202-解析处理模块,203-连接判断模块,204-第二接收模块,205-请求处理模块,206-等待处理模块,207-响应处理模块。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图1所示,本发明技术方案提供一种实现自适应跨网段双向通信的方法,包括如下步骤:
步骤1:通过客户端与服务器端互相发起带有token的连接请求来探测网络拓扑结构是否互通;
步骤2:当网络单向通信时,客户端不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;
步骤3:服务器端按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息;
步骤4:当网络互通时,使用传统的原生Restful API进行通信。
首先通过客户端与服务器端互相发起连接请求,以求探测网络拓扑结构,当处于互通的网络时则使用传统的原生Restful API进行通信。而当处于单向通信的网络条件时,使客户端不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;服务器端按需对这些请求进行回复,并在回复的响应体中附带想要主动发送到客户端的消息。通过这样的过程,可以在逻辑上实现广适应、低时延的跨网段双向通信。
如图2所示,在有些事实例中,步骤1中,所述的通过客户端与服务器端互相发起带有token的连接请求来探测网络拓扑结构是否互通的步骤包括:
步骤11:客户端向服务器端发起带有token的HTTP请求;
步骤12:判断客户端发送请求是否成功;若是,执行步骤14,否则,执行步骤13;
步骤13:判定为无效的网络环境,放弃通信;
步骤14:服务器端收到并解析客户端发送的请求,在请求中夹带客户端的token以请求连接的方式发送给客户端;
步骤15:判断连接是否成功;若否,执行步骤16,若是,执行步骤17;
步骤16:判定为网络单向通信;
步骤17:客户端根据接收到的请求中的token判断网络是否互通。
为了避免因不同网段中存在IP地址或域名雷同而导致的误判,在此步骤中需要使用token作为状态研判依据。
需要说明的是,步骤17中,所述的客户端根据接收到的请求中的token判断网络是否互通的步骤包括:
步骤171:客户端接收服务器端发送的请求;
步骤172:提取请求中的token;
步骤173:判断提取是否成功;若否,执行步骤16,否则,执行步骤174;
步骤174:将提取到的token与发送到服务器端的HTTP请求中的token进行匹配;
步骤175:判断匹配是否成功;若是,判定网络互通;若否,执行步骤16。
只有在token匹配的前提下,才会认定当前网络环境支持双向通信,否则认为是非法连接而按照单向网络通信。
在有些实施例中,步骤2中,客户端不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息的步骤包括:
步骤21:阻塞等待来自客户端体系内其他模块的待发送的消息;
步骤22:判断等待是否超时;若是,执行步骤23;若否,执行步骤24;
步骤23:生成空的心跳消息;
步骤24:得到来自客户端体系内其他模块的待发送的消息;
步骤25:将步骤24中得到的消息、步骤23中生成的空的心跳消息通过HTTP请求发送到服务器端。
在有些事实例中,步骤3中,所述的服务器端按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息的步骤包括:
步骤31:服务器端接收客户端发送的请求并对请求进行处理后产生回复消息;
步骤32:步骤31的同时阻塞等待服务器端体系内其他模块的待发送的消息;
步骤33:判断等待是否超时,若是,执行步骤34;若否,执行步骤35;
步骤34:回复空响应消息;
步骤35:得到服务器端体系内其他模块的待发送的消息并回复所得的消息;
步骤36:将步骤31中对请求处理后产生的回复消息、步骤34中等待超时的空响应消息、步骤35中服务器端体系内其他模块的消息叠加合并依次以请求回复的形式回到客户端。
当客户端在一定时间内没有需要发送到服务器端的数据时,则发送空的心跳请求;而当服务器端在一定时间内没有需要发送到客户端的数据时,则回复空的响应。通过这样的过程,可以在逻辑上实现广适应、低时延的跨网段双向通信。
在有些实施例中,步骤36中,所述的将对请求处理后产生的回复消息、等待超时的空响应消息、服务器端体系内其他模块的消息叠加合并依次以请求回复的形式回到客户端的步骤之后还包括:
客户端对服务器端的请求回复进行处理。
因此在运用了本发明的逻辑后,对于底层通信库的选择将变得广泛而自由。
为了解决跨网段通信的问题、弥补Restful API继承自HTTP的先天通信模式的不足,本发明提出了不改变Restful API基本原则定义、但可以实现逻辑上跨网段通信的方法,首先通过客户端与服务器端互相发起连接请求,以求探测网络拓扑结构,当处于互通的网络时则使用传统的原生Restful API进行通信。而当处于单向通信的网络条件时,使客户端不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;服务器端按需对这些请求进行回复,并在回复的响应体中附带想要主动发送到客户端的消息。当客户端在一定时间内没有需要发送到服务器端的数据时,则发送空的心跳请求;而当服务器端在一定时间内没有需要发送到客户端的数据时,则回复空的响应。通过这样的过程,可以在逻辑上实现广适应、低时延的跨网段双向通信。如图3所示,具体所涉的步骤共分为三个阶段:
首先是网络拓扑探测阶段。本阶段的主要功能是对所处的网络环境进行探测,研判在该环境中是否可以实现双方的直接通信。需要注意的是,为了避免因不同网段中存在IP地址或域名雷同而导致的误判,在此步骤中需要使用token作为状态研判依据,只有在token匹配的前提下,才会认定当前网络环境支持双向通信,否则认为是非法连接而按照单向网络通信。具体包括:客户端向服务器端发起带有token的HTTP请求;判断客户端发送请求是否成功;若否,判定为无效的网络环境,放弃通信;若是,服务器端收到并解析客户端发送的请求,在请求中夹带客户端的token以请求连接的方式发送给客户端;判断连接是否成功;若否,判定为网络单向通信;若是,客户端接收服务器端发送的请求;提取请求中的token;判断提取是否成功;若否,判定为网络单向通信;若是,将提取到的token与发送到服务器端的HTTP请求中的token进行匹配;判断匹配是否成功;若是,判定网络互通;若否,判定为网络单向通信。
其次是请求阶段。在请求阶段中,客户端负责通信的模块会阻塞等待来自客户端体系内其他模块的待发送的消息;判断等待是否超时;若是,生成空的心跳消息,若否,得到来自客户端体系内其他模块的待发送的消息;将得到的消息、生成的空的心跳消息通过HTTP请求发送到服务器端。
然后是响应阶段。在服务器接收到来自客户端的消息后,则进入到响应阶段。在此步骤中,服务器端的处理流程将会分为两个线程执行。主线程直接进入与客户端类似的阻塞等待其他模块消息的状态,而分支线程将会启动对客户端请求的处理逻辑,并生成回复消息。最终,来自其他模块的消息、等待超时的空响应消息,以及对请求处理后产生的回复消息,将叠加合并依次以请求回复的形式回到客户端,并由客户端业务模块执行处理操作。
如图4所示,本发明实施例还提供一种实现自适应跨网段双向通信的系统,包括客户端100和服务器端200;
客户端100,用于发起带有token的连接请求来探测网络拓扑结构中客户端到服务器端是否连通;当客户端到服务器端网络单向通信时,客户端,还用于不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;
服务器端200,用于接收并解析客户端发送的请求,并发起带有token的连接请求来探测网络拓扑结构中服务器端到客户端是否连通;当客户端到服务器端网络单向通信时,服务器端,还用于按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息。
在有些实施例中,客户端100包括请求发送模块101、发送请求判断模块102、验证处理模块103;服务器端200包括第一接收模块201、解析处理模块202、连接判断模块203;
请求发送模块101,用于向服务器端发起带有token的HTTP请求;
发送请求判断模块102,用于判断客户端发送请求是否成功;
第一接收模块201,用于接收客户端请求发送模块发送的请求;
解析处理模块202,用于对接收到的请求进行解析并在请求中夹带客户端的token以请求连接的方式发送给客户端;
连接判断模块203,用于判断服务器端发送给客户端的请求连接是否连接成功;若连接失败,判定为网络单向通信;
验证处理模块103,用于若连接判断模块输出连接成功时,接收服务器端发送的请求;并提取请求中的token;若提取失败,判定为网络单项通信;若提取成功,将提取到的token与发送到服务器端的HTTP请求中的token进行匹配,匹配成功,判定为网络互通,匹配不成功,判定为网络单项通信。
为了避免因不同网段中存在IP地址或域名雷同而导致的误判,在此步骤中需要使用token作为状态研判依据。只有在token匹配的前提下,才会认定当前网络环境支持双向通信,否则认为是非法连接而按照单向网络通信。
在有些实施例中,客户端100还包括消息处理模块104;服务器端200还包括第二接收模块204、请求处理模块205、等待处理模块206和响应处理模块207;
消息处理模块104,用于阻塞等待来自客户端体系内其他模块的待发送的消息;判断等待是否超时;若是,生成空的心跳消息,若否,得到来自客户端体系内其他模块的待发送的消息;将得到的消息、生成的空的心跳消息通过HTTP请求发送到第二接收模块;
第二接收模块204,用于接收客户端发送的请求;
请求处理模块205,用于对第二接收模块接收的请求进行处理,产生回复消息;
等待处理模块206,用于阻塞等待服务器端体系内其他模块的待发送的消息;判断等待是否超时,若是,回复空响应消息,若否,得到服务器端体系内其他模块的待发送的消息并回复所得的消息;
响应处理模块207,用于将请求处理模块产生的回复消息、等待处理模块输出的等待超时的空响应消息、服务器端体系内其他模块的消息叠加合并依次以请求回复的形式回到客户端。
当客户端100在一定时间内没有需要发送到服务器端200的数据时,则发送空的心跳请求;而当服务器端在一定时间内没有需要发送到客户端的数据时,则回复空的响应。通过这样的过程,可以在逻辑上实现广适应、低时延的跨网段双向通信。
在有些事实例中,客户端100还包括业务处理模块105,所述的业务处理模块105,用于对服务器端的请求回复进行处理。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (2)
1.一种实现自适应跨网段双向通信的方法,其特征在于,包括如下步骤:
通过客户端与服务器端互相发起带有token的连接请求来探测网络拓扑结构是否互通;具体包括:客户端向服务器端发起带有token的HTTP请求;判断客户端发送请求是否成功;若否,判定为无效的网络环境,放弃通信;若是,服务器端接收并解析客户端发送的请求,在请求中夹带客户端的token以请求连接的方式发送给客户端;判断连接是否成功;若否,判定为网络单向通信;若是,客户端接收服务器端发送的请求;提取请求中的token;判断提取是否成功;若否,判定为网络单向通信;若是,将提取到的token与发送到服务器端的HTTP请求中的token进行匹配;判断匹配是否成功;若是,判定网络互通;若否,判定为网络单向通信;
当网络单向通信时,客户端不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;具体包括:阻塞等待来自客户端体系内其他模块的待发送的消息;判断等待是否超时;若是,生成空的心跳消息,若否,得到来自客户端体系内其他模块的待发送的消息;将得到的消息、生成的空的心跳消息通过HTTP请求发送到服务器端;
服务器端按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息;具体包括:服务器端接收客户端发送的请求并对请求进行处理后产生回复消息;同时阻塞等待服务器端体系内其他模块的待发送的消息;判断等待是否超时,若是,回复空响应消息,若否,得到服务器端体系内其他模块的待发送的消息并回复所得的消息;将对请求处理后产生的回复消息、等待超时的空响应消息、服务器端体系内其他模块的消息叠加合并依次以请求回复的形式回到客户端;客户端对服务器端的请求回复进行处理;
当网络互通时,使用原生的Restful API进行通信。
2.一种实现自适应跨网段双向通信的系统,其特征在于,包括客户端和服务器端;当网络互通时,使用原生的Restful API进行通信;
客户端,用于发起带有token的连接请求来探测网络拓扑结构中客户端到服务器端是否连通;当客户端到服务器端网络单向通信时,客户端,还用于不间断向服务器端发起HTTP请求,并在请求中附带需要发送到服务器端的消息;
服务器端,用于接收并解析客户端发送的请求,并发起带有token的连接请求来探测网络拓扑结构中服务器端到客户端是否连通;当客户端到服务器端网络单向通信时,服务器端,还用于按需对客户端发送的请求进行回复,并在回复的响应中附带要主动发送到客户端的消息;
客户端包括请求发送模块、发送请求判断模块和验证处理模块;
服务器端包括第一接收模块、解析处理模块和连接判断模块;
请求发送模块,用于向服务器端发起带有token的HTTP请求;
发送请求判断模块,用于判断客户端发送请求是否成功;
第一接收模块,用于接收客户端请求发送模块发送的请求;
解析处理模块,用于对接收到的请求进行解析并在请求中夹带客户端的token以请求连接的方式发送给客户端;
连接判断模块,用于判断服务器端发送给客户端的请求连接是否连接成功;若连接失败,判定为网络单向通信;
验证处理模块,用于若连接判断模块输出连接成功时,接收服务器端发送的请求;并提取请求中的token;若提取失败,判定为网络单向通信;若提取成功,将提取到的token与发送到服务器端的HTTP请求中的token进行匹配,匹配成功,判定为网络互通,匹配不成功,判定为网络单向通信;
客户端还包括消息处理模块和业务处理模块;
服务器端还包括第二接收模块、请求处理模块、等待处理模块和响应处理模块;
消息处理模块,用于阻塞等待来自客户端体系内其他模块的待发送的消息;判断等待是否超时;若是,生成空的心跳消息,若否,得到来自客户端体系内其他模块的待发送的消息;将得到的消息、生成的空的心跳消息通过HTTP请求发送到第二接收模块;
第二接收模块,用于接收客户端发送的请求;
请求处理模块,用于对第二接收模块接收的请求进行处理,产生回复消息;
等待处理模块,用于阻塞等待服务器端体系内其他模块的待发送的消息;判断等待是否超时,若是,回复空响应消息,若否,得到服务器端体系内其他模块的待发送的消息并回复所得的消息;
响应处理模块,用于将请求处理模块产生的回复消息、等待处理模块输出的等待超时的空响应消息、服务器端体系内其他模块的消息叠加合并依次以请求回复的形式回到客户端;
所述的业务处理模块,用于对服务器端的请求回复进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110779798.4A CN113612628B (zh) | 2021-07-09 | 2021-07-09 | 一种实现自适应跨网段双向通信的方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110779798.4A CN113612628B (zh) | 2021-07-09 | 2021-07-09 | 一种实现自适应跨网段双向通信的方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612628A CN113612628A (zh) | 2021-11-05 |
CN113612628B true CN113612628B (zh) | 2023-04-18 |
Family
ID=78304364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110779798.4A Active CN113612628B (zh) | 2021-07-09 | 2021-07-09 | 一种实现自适应跨网段双向通信的方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113612628B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515936A (zh) * | 2014-09-23 | 2016-04-20 | 中国电信股份有限公司 | 消息通信的方法、服务器和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8356100B2 (en) * | 2010-11-08 | 2013-01-15 | Google Inc. | Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof |
CN105391536A (zh) * | 2015-10-28 | 2016-03-09 | 浪潮(北京)电子信息产业有限公司 | 一种客户端和服务端进行通信的方法及装置 |
CN106375453B (zh) * | 2016-09-05 | 2020-03-20 | 珠海市魅族科技有限公司 | 基于http连接的双向通讯设备、系统和方法 |
CN106534192B (zh) * | 2016-12-15 | 2020-01-07 | 上海斐讯数据通信技术有限公司 | 一种共享认证方法及系统、智能设备及控制方法 |
US11190614B2 (en) * | 2018-07-27 | 2021-11-30 | Vmware, Inc. | Bidirectional command protocol via a unidirectional communication connection for reliable distribution of tasks |
CN110933171A (zh) * | 2019-11-29 | 2020-03-27 | 北京浪潮数据技术有限公司 | 一种服务器异步通信方法、装置、设备及计算机存储介质 |
-
2021
- 2021-07-09 CN CN202110779798.4A patent/CN113612628B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515936A (zh) * | 2014-09-23 | 2016-04-20 | 中国电信股份有限公司 | 消息通信的方法、服务器和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113612628A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7668839B2 (en) | Application management for utilizing a replication engine of a Web-AP server to execute SIP replication | |
CN110430275B (zh) | 数据处理方法、装置、系统、计算设备以及介质 | |
US9002954B2 (en) | Task management system associating with contact information and method thereof | |
CN112311774B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN103780615B (zh) | 一种在多个服务器间客户端会话数据共享方法 | |
US8601139B2 (en) | Multiple core session initiation protocol (SIP) | |
CN103347087B (zh) | 一种结构化p2p和uddi的服务注册与查找方法和系统 | |
CN107248978A (zh) | 一种消息监听处理方法及系统 | |
CN104168294A (zh) | 跨开放平台用户间的即时通讯方法、系统及装置 | |
WO2023273240A1 (zh) | 微服务调用方法、装置、电子设备和可读存储介质 | |
CN113612628B (zh) | 一种实现自适应跨网段双向通信的方法、系统 | |
CN114371935A (zh) | 网关处理方法、网关、设备及介质 | |
US8627412B2 (en) | Transparent database connection reconnect | |
CN111373377B (zh) | 用于请求者和提供者之间的错误处理的方法和系统 | |
CN112527901A (zh) | 数据存储系统、方法、计算设备及计算机存储介质 | |
Wang et al. | A general model for detecting distributed termination in dynamic systems | |
CN104363275B (zh) | 一种代理处理数据的方法、装置和系统 | |
US8606947B2 (en) | Heuristics processing | |
CN111641664B (zh) | 一种爬虫设备业务请求方法、装置、系统和存储介质 | |
CN103916411B (zh) | 超文本传输协议请求超时的处理方法及装置 | |
CN111416852A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
CN109542981A (zh) | 一种数据同步的系统及方法、电子设备、存储介质 | |
CN113660339B (zh) | 用于去中心化集群的方法和装置 | |
CN115037803B (zh) | 一种服务调用方法、电子设备及存储介质 | |
CN114448703B (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 |