CN107332912B - 服务发现方法、装置、系统及存储介质、计算机设备 - Google Patents
服务发现方法、装置、系统及存储介质、计算机设备 Download PDFInfo
- Publication number
- CN107332912B CN107332912B CN201710534162.7A CN201710534162A CN107332912B CN 107332912 B CN107332912 B CN 107332912B CN 201710534162 A CN201710534162 A CN 201710534162A CN 107332912 B CN107332912 B CN 107332912B
- Authority
- CN
- China
- Prior art keywords
- server
- connection
- code
- client
- description information
- 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
Images
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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种服务发现方法、装置、系统及存储介质、计算机设备,一种方法包括:检测所注册的服务器是否处于工作状态;当检测到服务器处于工作状态时,经由服务器获取第一连接码;向客户端通知第一连接码,以使得客户端能够根据所述第一连接码返回连接请求,从而与客户端建立连接;当检测到服务器处于关闭状态时,根据预设的编码规则生成第二连接码;向客户端通知第二连接码,以使得客户端能够根据所述第二连接码返回连接请求,从而与所述客户端建立连接,克服了现有技术存在无法跨越路由器的缺陷,此外,在服务器正常工作或出现故障的情况下都能进行正常的发现服务过程,而且两种方式切换流畅自然,不影响前端的客户体验。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种服务发现方法、装置、系统及存储介质、计算机设备。
背景技术
对于服务端和客户端架构的系统,客户端需要发现并连接相应的服务器。一般有免配置自发现和基于服务器的发现两种方式。其中,免配置自发现方式无需配置服务器,但是需通过局域网内的UDP(User Datagram Protocol,用户数据报协议)组播/广播的方式实现,这种方式存在无法通过路由器转发的缺陷,另一方面,如果局域网内有较多基于同一协议的统一类型设备(如网络打印机,AirPlay接收器),客户端的设备列表里会存在多个可供选择的设备,对用户的使用来说并不够简便。而基于服务器的方式需提前配置服务器地址,并且如果服务器出现故障,即便客户端和服务端可以正常连接,也会由于无法发现服务,导致不能正常使用。
发明内容
本发明实施例的目的是提供一种服务发现方法、装置、系统及存储介质、计算机设备,能解决现有服务自发现方式存在无法跨越路由器的缺陷,在服务器正常工作或出现故障的情况下都能进行正常的发现服务过程,实现客户端和服务端的有效连接。
为实现上述目的,本发明实施例提供了一种服务发现方法,包括步骤:
检测所注册的服务器是否处于工作状态;
当检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码;
向客户端通知第一连接码,以使得所述客户端能够根据所述第一连接码返回连接请求,从而与所述客户端建立连接;
当检测到所述服务器处于关闭状态时,根据预设的编码规则生成第二连接码;
向所述客户端通知第二连接码,以使得所述客户端能够根据所述第二连接码返回连接请求,从而与所述客户端建立连接。
作为上述方案的改进,所述检测所述装置所注册的服务器是否处于工作状态具体为:
以预设的频率向所述服务器发送通讯请求,若接收到所述服务器根据所述通讯请求返回的响应信息则确认所述服务器处于工作状态,若未接收到所述通讯请求的响应信息,则确认所述服务器处于关闭状态;
则所述经由所述服务器获取第一连接码具体为:
向所述服务器发送服务描述信息,并接收由所述服务器根据所述服务描述信息返回的第一连接码。采用通讯状态检测服务器是否为工作状态,具有及时高效的特点,能快速进行上述两种服务发现方式的切换。
作为上述方案的改进,所述检测所述装置所注册的服务器是否处于工作状态具体为:
向所述服务器发送服务描述信息,若接收到所述服务器根据所述服务描述信息返回的第一连接码时,则确认所述服务器处于工作状态,若未接收到所述服务器根据所述服务描述信息返回的第一连接码时,则确认所述服务器处于关闭状态。上述方式直接向所述服务器发送服务描述信息,可同时执行判断所述服务器是否处于工作状态的过程和获取第一连接码的过程。
作为上述方案的改进,所述根据预设的编码规则生成第二连接码具体为:
根据预设的编码规则将所述服务描述信息进行编码生成所述第二连接码;所述第二连接码包括安全码位、端口映射位和IP地址位。
作为上述方案的改进,当第二连接码为六位十进制数时,所述根据预设的编码规则将服务描述信息进行编码生成第二连接码具体为:
采用19位的二进制数进行编码,将所述19位的二进制数的其中4位设置为安全码位,将所述19位的二进制数的其中2位设置为端口映射位;将所述19位的二进制数的其中13位设置为IP地址位;其中,所述IP地址位包括IP地址的主机号段和部分网络号段。
本发明实施例还提供了另一种服务发现方法,包括步骤:
检测所注册的服务器是否处于工作状态;
当检测到所述服务器处于工作状态时,根据由服务端获取的第三连接码,经由所述服务器获取服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接;其中,所述服务描述信息包括IP地址、端口和安全码;
当检测到所述服务器处于关闭状态时,将第三连接码进行解析后获取所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接。
作为上述方案的改进,所述检测所注册的服务器是否处于工作状态具体为:
以预设的频率向所述服务器发送通讯请求,若接收到所述通讯请求的响应信息则确认所述服务器处于工作状态,若未接收到所述通讯请求的响应信息,则确认所述服务器处于关闭状态;
则所述根据由所述服务端获取的第三连接码,经由所述服务器获取服务描述信息具体为:
向所述服务器发送第三连接码,并接收由所述服务器根据所述第三连接码返回的服务描述信息。
作为上述方案的改进,所述检测所注册的服务器是否处于工作状态具体为:
向所述服务器发送第三连接码,若接收到所述服务器根据所述第三连接码返回的服务描述信息时,则确认所述服务器处于工作状态,若未接收到所述服务器根据所述第三连接码返回的服务描述信息时,则确认所述服务器处于关闭状态。
本发明实施例还提供了一种服务发现装置,包括:
第一检测模块,用于检测所述装置所注册的服务器是否处于工作状态;
第一连接码获取模块,用于当检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码;
第一连接模块,用于向客户端通知第一连接码,以使得所述客户端能够根据所述第一连接码返回连接请求,从而与所述客户端建立连接;
第二连接码生成模块,用于当检测到所述服务器处于关闭状态时,根据预设的编码规则生成第二连接码;
第二连接模块,用于向所述客户端通知第二连接码,以使得所述客户端能够根据所述第二连接码返回连接请求,从而与所述客户端建立连接。
本发明实施例还提供了另一种服务发现装置,包括:
第二检测模块,用于检测所注册的服务器是否处于工作状态;
第三连接模块,用于当检测到所述服务器处于工作状态时,根据由服务端获取的第三连接码,经由所述服务器获取服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接;其中,所述服务描述信息包括IP地址、端口和安全码;
第四连接模块,用于当检测到所述服务器处于关闭状态时,将第三连接码进行解析后获取所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接。
本发明实施例还提供了一种服务发现系统,包括客户端和服务端,其中,
所述服务端,用于检测所注册的服务器是否处于工作状态;当检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码,向所述客户端通知第一连接码;当所述服务端检测到所述服务器处于关闭状态时,根据预设的编码规则将所述服务描述信息进行编码生成第二连接码,并将所述第二连接码发送至所述客户端;
所述客户端,用于检测所注册的所述服务器是否处于工作状态;当检测到所述服务器处于工作状态时,基于所述第一连接码经由服务器获得服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接;若检测到所述服务器处于关闭状态时,将所述第二连接码进行解析后获得所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接;其中,所述服务描述信息包括IP地址、端口和安全码。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的服务发现方法。
本发明实施例还提供了一种计算机设备,包括一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序包括用于上述任意一项所述的服务发现方法。
与现有技术相比,本发明实施例提供了一种服务发现方法、装置及系统、服务端、客户端、存储介质,当服务端检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码,向所述客户端通知第一连接码,客户端通过第一连接码经由服务器获取服务描述信息;当检测到所述服务器处于关闭状态时,根据预设的编码规则将所述服务描述信息进行编码生成第二连接码,向所述客户端通知第二连接码,客户端将第二连接码进行解析获得服务描述信息,从而根据服务描述信息与所述服务端建立连接,克服了现有技术采用UDP广播/组播存在无法跨越路由器的缺陷,在服务器正常工作或出现故障的情况下都能进行正常的发现服务过程,实现客户端和服务端跨网段的有效连接,此外,两种方式能自动进行流畅切换,不影响前端的客户体验。
附图说明
图1是本发明实施例1提供的一种服务发现方法的流程示意图。
图2是本发明实施例2提供的一种服务发现方法的流程示意图。
图3是本发明实施例3提供的一种服务发现方法的流程示意图。
图4是本发明实施例4提供的一种服务发现方法的流程示意图。
图5是本发明实施例5提供的一种服务发现装置的结构示意图。
图6是本发明实施例6提供的一种服务发现装置的结构示意图。
图7是本发明实施例7提供的一种服务发现系统的结构示意图。
图8是本发明实施例7提供的服务发现系统的其中一种工作方式的过程示意图。
图9是本发明实施例7提供的服务发现系统的另一种工作方式的过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例1提供的一种服务发现方法的流程示意图,包括步骤:
S1、服务端检测所注册的服务器是否处于工作状态;
在该步骤中,所述服务端为个人电脑(如台式机、笔记本电脑等)、智能平板电脑、打印机、智能电视等设备。所述服务端进行检测具有多种方式,其中一种方式是通过保持与服务器的通讯状态,当通讯维持正常状态时,确定所述服务器处于正常工作状态;当通讯终止时,可确定所述服务器处于异常或关闭状态;
S2、当所述服务端检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码;
其中,当所述服务器处于工作状态时,服务器需记录不同设备的基本信息并为不同设备分配不同的第一连接码,所述第一连接码并不包括设备的基本信息,需通过服务器可查询分配记录才能获得不同的第一连接码所对应的设备的基本信息;
S3、所述服务端向客户端通知第一连接码,以使得所述客户端能够根据所述第一连接码返回连接请求,从而与所述客户端建立连接;
在该步骤中,所述客户端为智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MID)、PAD等。通过向所述客户端通知第一连接码,从而实现与所述客户端建立连接,无需以局域网UDP广播/组播的方式传播服务信息,克服了现有技术存在不能跨越路由器的问题,实现跨网段的服务发现;另一方面,由于第一连接码和设备的对应关系,可以采用第一连接码输入客户端的方式实现单向连接,用户无需在设备列表中的多个设备作选择,在使用上更为便捷。
S4、当所述服务端检测到所述服务器处于关闭状态时,根据预设的编码规则生成第二连接码;
S5、所述服务端向客户端通知第二连接码,以使得所述客户端能够根据所述第二连接码返回连接请求,从而与所述客户端建立连接。
其中,所述第二连接码包括设备的基本信息,客户端可从第二连接码中获得相应的设备信息,从而建立与服务端的连接,这种方式同样采用了连接码通知的方式实现服务发现,也有效克服了现有通过局域网内的UDP组播/广播的方式无法通过路由器转发的问题,并不局限于同一网段内的服务发现,可以实现跨网段的服务发现。
优选地,上述所述服务端向所述客户端通知第一连接码或第二连接码的方式,可先将该连接码通知给用户,再由用户将所述连接码输入至客户端。具体地,服务端可以将生成的连接码显示在用户界面上,供用户查看;或者,服务端也可以向用户发送短信、邮件等,将生成的连接码通知给用户。
基于上述实施例的方案,在服务器处于正常工作状态时,所述服务端经由服务器获取第一连接码,从而通过第一连接码建立与客户端的连接;而在服务器处于关闭或异常的状态下,所述服务端无需经由服务器获取第一连接码,根据预设的编码规则生成第二连接码,从而通过第二连接码建立与客户端的连接,即在服务器处于正常工作状态下或关闭状态下,都能保持正常的服务发现,实现客户端和服务端的高效连接。而且,两种方式可由统一位数的连接码实现,服务器的状态并不影响用户的使用,服务器工作或关闭状态之间的服务发现方式自动切换,无需用户进行额外的操作,维持正常的服务发现功能,有效提高了用户的体验感。
在上述实施例1的基础上,当采用通讯的方式检测所述服务器是否处于工作状态时,如图2所示,步骤S1具体为:
S1’、所述服务端以预设的频率向所述服务器发送通讯请求,若接收到所述服务器根据所述通讯请求返回的响应信息则确认所述服务器处于工作状态,若未接收到所述通讯请求的响应信息,则确认所述服务器处于关闭状态;
则步骤S2具体为:
S2’、当所述服务端检测到所述服务器处于工作状态时,向所述服务器发送服务描述信息,并接收由所述服务器根据所述服务描述信息返回的第一连接码;其中,所述服务描述信息包括IP地址、端口和安全码。
采用通讯状态检测服务器是否为工作状态,具有及时高效的特点,能快速进行上述两种服务发现方式的切换。所述服务端向所述服务器发送包括IP地址、端口和安全码的服务描述信息,服务器会记录相应的信息并分配相应的第一连接码,并建立服务描述信息和第一连接码的对应关系表,以供客户端查询调用相应的服务描述信息,从而实现服务发现过程。
如图3所示,在另一实施例中,另一种检测服务器是否正常工作的方式为直接向服务器发送服务描述信息,通过是否接收到回送的响应信息进行判断,具体为:
S1”、所述服务端向所述服务器发送服务描述信息,若接收到所述服务器根据所述服务描述信息返回的第一连接码时,则确认所述服务器处于工作状态,若未接收到所述服务器根据所述服务描述信息返回的第一连接码时,则确认所述服务器处于关闭状态。
上述方式直接向所述服务器发送服务描述信息,可同时执行判断所述服务器是否处于工作状态的过程和获取第一连接码的过程。
可以理解地,上述实施例中步骤S4中所述根据预设的编码规则生成第二连接码具体为:
根据预设的编码规则将所述服务描述信息进行编码生成所述第二连接码;所述第二连接码包括安全码位、端口映射位和IP地址位。
上述第二连接码的编码方式有利于客户端进行解析后获得服务端的IP地址、端口号和安全码,客户端通过IP地址和端口号可将构造的连接请求发送至目标服务器,安全码的比对可判断客户端的连接请求是否经过授权,当判断经过授权时即可建立两者的连接,从而实现数据传输。
为了便于说明,以6位十进制数字作为第二连接码为例进行编码规则的详细介绍。10进制6位数编码空间为10^6=100 0000,二进制为1111 0100 0010 01000000,一共为20位比特位。为了方便编码,考虑到20位比特位二进制数会超出6位10进制数所能表示的范围,在编码的过程中存在某一位上不能为1的限制,使用19位比特位二进制数进行编码。其中,使用4位比特位作为安全码,可以使用任意位置4位比特位,为了让连接码尽可能无规律变化,可取高位4位比特位,如比特位15-18。在客户端连接时,服务端根据安全码判断客户端的连接请求是否经过授权;使用2位比特位作为端口映射位,可以取任意位置的两位数字。为了方便描述,可取安全码位之后的比特位13-14用于表示4个预先约定好的端口号,如预先约定二进制数值00对应端口号8080,二进制数值01对应端口号8088,二进制数值10对应端口号8888,二进制数值11对应端口号9999,则客户端会解析这两位数据,根据预先约定的端口号进行连接。这一设定是为了避免服务端特定端口占用,无法提供服务的情况。剩余未使用的比特位,均用来编码IP地址。具体方法为,将IP地址编码为二进制,对于IPv4地址,一共有32位比特位,而对于IPv6地址,一共有128位比特位,需将其中低位网络号和主机号,用来填充剩余可用的连接码空闲位,在本实施例中,一共剩余13个可用位(比特位0-12),可以支持主机数8190的子网。实际使用过程中,客户端不能从所述第二连接码中获取完整的IP地址,只能获得IP地址的低位网络号和主机号,因此,客户端需将本机IP的高位网络地址,添加至所述IP地址的低位网络地址和主机地址之前,以获取的完整的服务IP。
在实际情况中,第二连接码并不限定于6位十进制数的情况,为了实现范围更广的跨网连接,可将完整的IP地址加入连接码中;另一方面,也可预留多位比特位用作其他用途,在此不做过多的说明。
参见图4,是本发明实施例提供的另一种服务发现方法的流程示意图,包括步骤:
S21、客户端检测所注册的服务器是否处于工作状态;
S22、当所述客户端检测到所述服务器处于工作状态时,根据由服务端获取的第三连接码,经由所述服务器获取服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接;其中,所述服务描述信息包括IP地址、端口和安全码;
其中,当所述客户端确定所述服务器处于工作状态时,需向所述服务器发送第三连接码以查询并调用相应的服务描述信息,根据获取到的服务描述信息即可构造连接请求,从而连接至目标服务端。
S23、当所述客户端检测到所述服务器处于关闭状态时,将第三连接码进行解析后获取所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接。
当所述客户端确定所述服务器处于关闭状态时,则确定获取到的第三连接码包括服务描述信息,对其进行解析即可获得相应的服务描述信息。获取第三连接码可以是通过用户在输入界面输入实现,这种单向的方式避免了现有的UDP广播/组播方式需用户在设备列表的多个设备中做出选择,简化了用户的操作过程,在使用上更为便捷。
基于上述描述的方案,服务器是否正常工作都不会影响服务发现的过程,当所述客户端检测到服务器正常工作时,将获取到的第三连接码通过服务器进行查询后获得对应的服务描述信息,而当检测到服务器处于关闭状态时,将获取到的第三连接码进行解析后获得所述服务描述信息,从而基于服务描述信息生成连接请求,并向服务端发送。这两种方式可自动切换,即使后台服务发现的方式可能已经进行了转换,但对于用户来说使用体验都是一样的。因此,本方案保证了服务发现过程的正常进行,也无需用户进行额外的操作,提高了用户体验感。
可以理解的,步骤S21中客户端检测所注册的服务器是否处于工作状态同样有两种方式,一种方式采用通讯检测的方式,另一种为直接向服务器发送连接码然后判断是否接收到响应信息的方式。当采用前一种方式时,步骤S21中所述检测所注册的服务器是否处于工作状态具体为:
所述客户端以预设的频率向所述服务器发送通讯请求,若接收到所述通讯请求的响应信息则确认所述服务器处于工作状态,若未接收到所述通讯请求的响应信息,则确认所述服务器处于关闭状态;
则步骤S22中所述根据由所述服务端获取的第三连接码,经由所述服务器获取服务描述信息具体为:
所述客户端向所述服务器发送第三连接码,并接收由所述服务器根据所述第三连接码返回的服务描述信息。
采用通讯状态检测服务器是否为工作状态,具有及时高效的特点,能快速进行上述服务发现方式的切换。所述客户端向所述服务器发送第三连接码以供服务器查询相应的服务描述信息,从而实现服务发现过程。
当采用后一种检测服务器是否处于工作状态时,步骤S21中所述检测所注册的服务器是否处于工作状态具体为:
所述客户端向所述服务器发送第三连接码,若接收到所述服务器根据所述第三连接码返回的服务描述信息时,则确认所述服务器处于工作状态,若未接收到所述服务器根据所述第三连接码返回的服务描述信息时,则确认所述服务器处于关闭状态。
上述方式具有直接明了的特点,可同时完成服务器是否工作的判断和服务描述信息的获取。
对应地,本发明实施例还提供一种服务发现装置,如图5所示的服务发现装置100包括:
第一检测模块101,用于检测所述装置所注册的服务器是否处于工作状态;
第一连接码获取模块102,用于当检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码;
第一连接模块103,用于向所述客户端通知第一连接码,以使得所述客户端能够根据所述第一连接码返回连接请求,从而与所述客户端建立连接;
第二连接码生成模块104,用于当检测到所述服务器处于关闭状态时,根据预设的编码规则生成第二连接码;
第二连接模块105,用于向所述客户端通知第二连接码,以使得所述客户端能够根据所述第二连接码返回连接请求,从而与所述客户端建立连接。
优选地,所述第一检测模块101执行检测的过程具体为:以预设的频率向所述服务器发送通讯请求,若接收到所述服务器根据所述通讯请求返回的响应信息则确认所述服务器处于工作状态,若未接收到所述通讯请求的响应信息,则确认所述服务器处于关闭状态,则所述第一连接码获取模块102通过向所述服务器发送服务描述信息,并接收由所述服务器根据所述服务描述信息返回的第一连接码;其中,所述服务描述信息包括IP地址、端口和安全码。
在另一优选实施例中,所述第一检测模块101执行检测的过程具体为:向所述服务器发送服务描述信息,若接收到所述服务器根据所述服务描述信息返回的第一连接码时,则确认所述服务器处于工作状态,若未接收到所述服务器根据所述服务描述信息返回的第一连接码时,则确认所述服务器处于关闭状态。
具体地,所述第二连接码生成模块104通过根据预设的编码规则将所述服务描述信息进行编码生成所述第二连接码;所述第二连接码包括安全码位、端口映射位和IP地址位。
当第二连接码为六位十进制数时,所述第二连接码生成模块104可采用下面的编码方式进行编码:
采用19位的二进制数进行编码,将所述19位的二进制数的其中4位设置为安全码位,将所述19位的二进制数的其中2位设置为端口映射位;将所述19位的二进制数的其中13位设置为IP地址位;其中,所述IP地址位包括IP地址的主机号段和部分网络号段。
参见图6,本发明实施例还对应提供了另一种服务发现装置,该装置200包括:
第二检测模块201,用于检测所注册的服务器是否处于工作状态;
第三连接模块202,用于当检测到所述服务器处于工作状态时,根据由所述服务端获取的第三连接码,经由所述服务器获取服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接;其中,所述服务描述信息包括IP地址、端口和安全码;
第四连接模块203,用于当检测到所述服务器处于关闭状态时,将第三连接码进行解析后获取所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接。
可以理解的,所述第二检测模块201也存在两种检测方式,一种为以预设的频率向所述服务器发送通讯请求,若接收到所述通讯请求的响应信息则确认所述服务器处于工作状态,若未接收到所述通讯请求的响应信息,则确认所述服务器处于关闭状态。当所述第二检测模块201采用这种检测方式时,则第三连接模块202通过向所述服务器发送第三连接码,从而获取由所述服务器根据所述第三连接码返回的服务描述信息。另一种检测的方式为直接向所述服务器发送第三连接码,若接收到所述服务器根据所述第三连接码返回的服务描述信息时,则确认所述服务器处于工作状态,若未接收到所述服务器根据所述第三连接码返回的服务描述信息时,则确认所述服务器处于关闭状态。
上述实施例提供的服务发现装置,均可从对应的服务发现方法中获得其具体实施过程,在此不再赘述。
参见图7,是本发明实施例提供的服务发现系统的结构示意图,包括服务端301和客户端302,其中,
所述服务端301,用于检测所注册的服务器是否处于工作状态;当检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码,向所述客户端302通知第一连接码;当检测到所述服务器处于关闭状态时,根据预设的编码规则将所述服务描述信息进行编码生成第二连接码,向所述客户端302通知第二连接码;
所述客户端302,用于检测所注册的所述服务器是否处于工作状态;当检测到所述服务器处于工作状态时,基于所述第一连接码经由服务器获得服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端301发送所述连接请求,从而与所述服务端301建立连接;若检测到所述服务器处于关闭状态时,将所述第二连接码进行解析后获得所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端301发送所述连接请求,从而与所述服务端301建立连接;其中,所述服务描述信息包括IP地址、端口和安全码。
具体实施时,如图8所示,当所述服务器处于工作状态时,服务端301向服务器发送服务描述信息,然后服务器记录所述服务描述信息并进行第一连接码的分配并回送至所述服务端301,服务端301将第一连接码通知至客户端302,客户端302将第一连接码发送至所述服务器进行查询从而获取服务描述信息,再根据服务描述信息向服务端301发送连接请求从而建立连接;如图9所示,当服务器处于关闭状态时,服务端301将服务描述信息进行编码生成第二连接码,将第二连接码通知客户端302,客户端302对所述第二连接码进行解析从而获得服务描述信息,再根据服务描述信息向服务端301发送连接请求从而建立连接。上述通过连接码通知的方式进行服务发现,与现有的UDP组播/广播自发现的方式相比,可以实现跨网段连接;此外,基于服务器和免服务器的方式可自动进行无缝切换,过程流畅,不影响前端的用户体验,操作便捷。
对应地,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述实施例1至实施例4所述的服务发现方法。
对应地,本发明实施例还提供了一种计算机设备,包括一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序包括用于执行上述实施例1至实施例4所述的服务发现方法。
综上,本发明实施例提供了一种服务发现方法、装置、系统及存储介质、计算机设备,当服务端检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码,向所述客户端通知第一连接码,客户端通过第一连接码经由服务器获取服务描述信息;当检测到所述服务器处于关闭状态时,根据预设的编码规则将所述服务描述信息进行编码生成第二连接码,向所述客户端通知第二连接码,客户端将第二连接码进行解析获得服务描述信息,从而根据服务描述信息与所述服务端建立连接,克服了现有技术存在无法跨越路由器的缺陷,在服务器正常工作或出现故障的情况下都能进行正常的发现服务过程,实现客户端和服务端的有效连接。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (12)
1.一种服务发现方法,其特征在于,所述方法由服务端执行,所述方法包括如下步骤:
检测所述服务端所注册的服务器是否处于工作状态;
当检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码;其中,所述服务器根据不同设备的基本信息并为不同设备分配不同的第一连接码;
向客户端通知第一连接码,以使得所述客户端能够根据所述第一连接码返回连接请求,从而所述服务端与所述客户端建立连接;
当检测到所述服务器处于关闭状态时,根据预设的编码规则生成第二连接码;其中,所述第二连接码包括设备的基本信息;
向所述客户端通知第二连接码,以使得所述客户端能够根据所述第二连接码返回连接请求,从而所述服务端与所述客户端建立连接;
其中,所述根据预设的编码规则生成第二连接码具体为:
根据预设的编码规则将服务描述信息进行编码生成所述第二连接码;所述第二连接码包括用于验证所述连接请求是否被授权的安全码位、用于建立连接的端口映射位和所述服务端的IP地址位。
2.如权利要求1所述的服务发现方法,其特征在于,所述检测所述服务端所注册的服务器是否处于工作状态具体为:
以预设的频率向所述服务器发送通讯请求,若接收到所述服务器根据所述通讯请求返回的响应信息则确认所述服务器处于工作状态,若未接收到所述通讯请求的响应信息,则确认所述服务器处于关闭状态;
则所述经由所述服务器获取第一连接码具体为:
向所述服务器发送服务描述信息,并接收由所述服务器根据所述服务描述信息返回的第一连接码;其中,所述服务描述信息包括所述服务端的IP地址、用于建立连接的端口和用于验证所述连接请求是否被授权的安全码。
3.如权利要求1所述的服务发现方法,其特征在于,所述检测所述服务端所注册的服务器是否处于工作状态具体为:
向所述服务器发送服务描述信息,若接收到所述服务器根据所述服务描述信息返回的第一连接码时,则确认所述服务器处于工作状态,若未接收到所述服务器根据所述服务描述信息返回的第一连接码时,则确认所述服务器处于关闭状态。
4.如权利要求1所述的服务发现方法,其特征在于,当第二连接码为六位十进制数时,所述根据预设的编码规则将服务描述信息进行编码生成第二连接码具体为:
采用19位的二进制数进行编码,将所述19位的二进制数的其中4位设置为安全码位,将所述19位的二进制数的其中2位设置为端口映射位;将所述19位的二进制数的其中13位设置为IP地址位;其中,所述IP地址位包括IP地址的主机号段和部分网络号段。
5.一种服务发现方法,其特征在于,所述方法由客户端执行,所述方法包括如下步骤:
检测所述客户端所注册的服务器是否处于工作状态;
当检测到所述服务器处于工作状态时,根据由服务端获取的第三连接码,经由所述服务器获取服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而所述客户端与所述服务端建立连接;其中,所述服务描述信息包括所述服务端的IP地址、用于建立连接的端口和用于验证所述连接请求是否被授权的安全码;所述服务端获取的第三连接码通过根据不同设备的基本信息分配不同的第三连接码;
当检测到所述服务器处于关闭状态时,将用户输入的第三连接码进行解析后获取所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而所述客户端与所述服务端建立连接;其中,所述用户输入的第三连接码根据预设的编码规则生成。
6.如权利要求5所述的服务发现方法,其特征在于,所述检测所述客户端所注册的服务器是否处于工作状态具体为:
以预设的频率向所述服务器发送通讯请求,若接收到所述通讯请求的响应信息则确认所述服务器处于工作状态,若未接收到所述通讯请求的响应信息,则确认所述服务器处于关闭状态;
则所述根据由所述服务端获取的第三连接码,经由所述服务器获取服务描述信息具体为:
向所述服务器发送从所述服务端获取的第三连接码,并接收由所述服务器根据所述第三连接码返回的服务描述信息。
7.如权利要求5所述的服务发现方法,其特征在于,所述检测所述客户端所注册的服务器是否处于工作状态具体为:
向所述服务器发送从所述服务端获取的第三连接码,若接收到所述服务器根据所述第三连接码返回的服务描述信息时,则确认所述服务器处于工作状态,若未接收到所述服务器根据所述第三连接码返回的服务描述信息时,则确认所述服务器处于关闭状态。
8.一种服务发现装置,其特征在于,包括:
第一检测模块,用于检测所述装置所注册的服务器是否处于工作状态;
第一连接码获取模块,用于当检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码;其中,所述服务器根据不同设备的基本信息并为不同设备分配不同的第一连接码;
第一连接模块,用于向客户端通知第一连接码,以使得所述客户端能够根据所述第一连接码返回连接请求,从而所述装置与所述客户端建立连接;
第二连接码生成模块,用于当检测到所述服务器处于关闭状态时,根据预设的编码规则生成第二连接码;其中,所述第二连接码包括设备的基本信息;
第二连接模块,用于向所述客户端通知第二连接码,以使得所述客户端能够根据所述第二连接码返回连接请求,从而所述装置与所述客户端建立连接;
其中,所述根据预设的编码规则生成第二连接码具体为:
根据预设的编码规则将服务描述信息进行编码生成所述第二连接码;所述第二连接码包括用于验证所述连接请求是否被授权的安全码位、用于建立连接的端口映射位和所述装置的IP地址位。
9.一种服务发现装置,其特征在于,包括:
第二检测模块,用于检测所述装置所注册的服务器是否处于工作状态;
第三连接模块,用于当检测到所述服务器处于工作状态时,根据由服务端获取的第三连接码,经由所述服务器获取服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而所述装置与所述服务端建立连接;其中,所述服务描述信息包括所述服务端的IP地址、用于建立连接的端口和用于验证所述连接请求是否被授权的安全码;所述服务端获取的第三连接码通过根据不同设备的基本信息分配不同的第三连接码;
第四连接模块,用于当检测到所述服务器处于关闭状态时,将用户输入的第三连接码进行解析后获取所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而所述装置与所述服务端建立连接;其中,所述用户输入的第三连接码根据预设的编码规则生成。
10.一种服务发现系统,其特征在于,包括客户端和服务端,其中,
所述服务端,用于检测所述服务端所注册的服务器是否处于工作状态;当检测到所述服务器处于工作状态时,经由所述服务器获取第一连接码,向所述客户端通知第一连接码;当检测到所述服务器处于关闭状态时,根据预设的编码规则将服务描述信息进行编码生成第二连接码,向所述客户端通知第二连接码;其中,所述根据预设的编码规则生成第二连接码具体为:根据预设的编码规则将服务描述信息进行编码生成所述第二连接码;所述第二连接码包括用于验证连接请求是否被授权的安全码位、用于建立连接的端口映射位和所述服务端的IP地址位;
所述客户端,用于检测所述客户端所注册的所述服务器是否处于工作状态;当检测到所述服务器处于工作状态时,基于所述第一连接码经由服务器获得服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接;若检测到所述服务器处于关闭状态时,将所述第二连接码进行解析后获得所述服务描述信息,根据所述服务描述信息生成连接请求,向所述服务端发送所述连接请求,从而与所述服务端建立连接;其中,所述服务描述信息包括所述服务端的IP地址、用于建立连接的端口和用于验证所述连接请求是否被授权的安全码。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的服务发现方法。
12.一种计算机设备,其特征在于,包括一个或多个处理器;存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被所述处理器执行时用于控制所述计算机设备执行权利要求1至7中任意一项所述的服务发现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534162.7A CN107332912B (zh) | 2017-07-03 | 2017-07-03 | 服务发现方法、装置、系统及存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534162.7A CN107332912B (zh) | 2017-07-03 | 2017-07-03 | 服务发现方法、装置、系统及存储介质、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107332912A CN107332912A (zh) | 2017-11-07 |
CN107332912B true CN107332912B (zh) | 2021-08-03 |
Family
ID=60198531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710534162.7A Active CN107332912B (zh) | 2017-07-03 | 2017-07-03 | 服务发现方法、装置、系统及存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107332912B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566453B (zh) * | 2017-08-03 | 2021-02-09 | 广州视源电子科技股份有限公司 | 服务发现方法、装置、计算机可读存储介质和计算机设备 |
CN108170285B (zh) * | 2018-03-01 | 2021-12-21 | 贵州小爱机器人科技有限公司 | 一种电子设备的交互控制方法及装置 |
CN108848164B (zh) * | 2018-06-15 | 2022-02-25 | 广州视源电子科技股份有限公司 | 显示设备的连接方法、显示设备及系统 |
CN108848162B (zh) * | 2018-06-15 | 2021-11-23 | 广州视源电子科技股份有限公司 | 显示设备的连接方法、显示设备及系统 |
CN109040210B (zh) * | 2018-07-23 | 2020-11-24 | 百富计算机技术(深圳)有限公司 | 一种应用之间的通信方法、终端设备及存储介质 |
CN110392124B (zh) * | 2019-06-11 | 2022-04-08 | 广州视源电子科技股份有限公司 | 电子设备的通讯码的生成方法、装置、系统以及电子设备 |
CN111355558A (zh) * | 2019-06-27 | 2020-06-30 | 鸿合科技股份有限公司 | 一种提高连接码连接准确率的方法及相关设备 |
CN111447213B (zh) * | 2020-03-24 | 2022-07-05 | 杭州海康威视数字技术股份有限公司 | 用于发现服务的验证码确定方法、装置及设备发现系统 |
EP4362598A1 (en) * | 2022-08-31 | 2024-05-01 | Guangzhou Shiyuan Electronics Co., Ltd. | Connection method and apparatus, display device, terminal device, and medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1643926A (zh) * | 2002-03-14 | 2005-07-20 | 皇家飞利浦电子股份有限公司 | 改进的即时电视点播Web服务的发现 |
CN101155146A (zh) * | 2006-09-14 | 2008-04-02 | 株式会社理光 | 网络设备 |
CN101459890A (zh) * | 2007-12-14 | 2009-06-17 | 日电(中国)有限公司 | 建立p2p连接的方法和终端设备以及系统 |
CN103391289A (zh) * | 2013-07-16 | 2013-11-13 | 中船重工(武汉)凌久高科有限公司 | 一种基于完成端口模型的多链路安全通信方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3929186B2 (ja) * | 1998-09-18 | 2007-06-13 | 三菱電機株式会社 | クライアント/サーバシステム |
CN101192936A (zh) * | 2006-11-29 | 2008-06-04 | 阿里巴巴公司 | 一种建立数据访问连接的方法、系统及用户终端 |
CN104320399A (zh) * | 2014-10-29 | 2015-01-28 | 上海斐讯数据通信技术有限公司 | 一种服务端自动配置信息的方法 |
-
2017
- 2017-07-03 CN CN201710534162.7A patent/CN107332912B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1643926A (zh) * | 2002-03-14 | 2005-07-20 | 皇家飞利浦电子股份有限公司 | 改进的即时电视点播Web服务的发现 |
CN101155146A (zh) * | 2006-09-14 | 2008-04-02 | 株式会社理光 | 网络设备 |
CN101459890A (zh) * | 2007-12-14 | 2009-06-17 | 日电(中国)有限公司 | 建立p2p连接的方法和终端设备以及系统 |
CN103391289A (zh) * | 2013-07-16 | 2013-11-13 | 中船重工(武汉)凌久高科有限公司 | 一种基于完成端口模型的多链路安全通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107332912A (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332912B (zh) | 服务发现方法、装置、系统及存储介质、计算机设备 | |
CN108989879B (zh) | 投屏的控制方法、装置和系统 | |
CN106535288B (zh) | 一种发送和获取wifi联网信息的方法和对应装置 | |
EP2532138B1 (en) | Connection priority services for data communication between two devices | |
CN103152331B (zh) | 通过移动终端进行登录/注册的方法、系统和云端服务器 | |
US8028082B2 (en) | Location based multicast policies | |
CN107566453B (zh) | 服务发现方法、装置、计算机可读存储介质和计算机设备 | |
CN103124267B (zh) | 通过移动终端进行登录/注册的方法、系统和云端服务器 | |
US11122484B2 (en) | Method of automatically switching between WLAN and LTE networks and communication terminal | |
CN113206753B (zh) | 一种信息配置方法和管理单元 | |
CN104159219A (zh) | WiFi终端及WiFi终端快速接入WiFi AP的方法和系统 | |
CN109314723B (zh) | 一种实现数据业务的方法、装置及终端 | |
CN107567017B (zh) | 无线连接系统、装置及方法 | |
CN105636161B (zh) | 接入无线网络的方法、装置、通信终端及无线网络接入点 | |
US9425982B2 (en) | Server and method for providing device management service and device receiving the device management service | |
CN109787843B (zh) | 一种智能设备的配网方法、装置、设备及存储介质 | |
CN105519028A (zh) | 一种无线系统接入控制方法及装置 | |
WO2017051069A1 (en) | Method and system of identifying an access request of an application on a mobile device in a telecommunication network | |
JP2017539176A (ja) | デバイス構成のための方法およびデバイス | |
CN108430091B (zh) | 一种高效的智能家居wifi配网方法及设备 | |
CN105323128B (zh) | 前端设备接入服务器的方法、装置及系统 | |
CN106488483B (zh) | 一种配置wifi网关设备的方法及相应的网关设备 | |
CN110913351B (zh) | 组播控制方法、装置、网络设备及存储介质 | |
CN102075588A (zh) | 一种实现网络地址转换nat穿越的方法、系统和设备 | |
CN112118610B (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 |