一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

通信交互方法及系统、应用端、客户端、中转服务端与流程

2022-06-29 21:53:43 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种通信交互方法及系统、应用端、客户端、中转服务端。


背景技术:

2.相关技术中,远程连接实时创作平台的方法通常是将实时创作平台(也可称为unity)运行在windows系统宿主平台上,用户通过远程桌面技术连接至宿主平台,从而通过浏览器间接地在宿主平台上操作实时创作平台。
3.但是受限于宿主平台,当实时创作平台需要运行在其他操作系统的平台上,受限于远程桌面技术的兼容性,造成无法跨操作系统对实时创作平台连接通信且只能连接一个实施创作平台的问题。


技术实现要素:

4.有鉴于此,本技术的目的在于提出一种通信交互方法及系统、应用端、客户端、中转服务端。
5.基于上述目的,在第一方面,本技术提供了一种通信交互方法,应用于应用端,包括:
6.响应于接收到中转服务端转发的来自客户端的实例控制请求,确定是否存在可用的应用实例;
7.响应于存在可用的所述应用实例,将待分配的所述应用实例中的目标应用实例的标识符发送至所述中转服务端,以建立所述目标应用实例与所述客户端之间的映射关系;
8.响应于接收到所述中转服务端转发的来自所述客户端的描述文本会话请求,根据所述映射关系生成针对所述描述文本会话请求的应答信息,并将所述应答信息通过所述中转服务端转发至所述客户端,以建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道;
9.通过所述数据通道将所述目标应用实例的媒体数据发送至所述客户端,并通过所述数据通道将所述客户端发送的指令数据传输至所述目标应用实例。
10.在一种可能的实现方式中,
11.所述确定是否存在可用的应用实例之后,还包括:
12.响应于不存在可用的所述应用实例,生成排队通知信息,并将所述排队通知信息通过所述中转服务端转发至所述客户端;其中,所述排队通知信息用于指示所述客户端进入排队状态;
13.所述方法还包括:
14.针对处于排队状态的所述客户端,根据预设时间间隔确定是否存在可用的应用实例。
15.在一种可能的实现方式中,
16.所述建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道,还包括:
17.获取所述应用端的第二媒体配置信息,并将所述第二媒体配置信息发送至所述中转服务端;其中,所述第二媒体配置信息,包括所述应用端的媒体类型、所述应用端的媒体格式和所述应用端的媒体接口;
18.响应于接收到所述中转服务端转发的所述客户端的第一媒体配置信息,确定所述第一媒体配置信息是否与所述第二媒体配置信息至少部分相同;其中,所述第一媒体配置信息,包括所述客户端的媒体类型、所述客户端的媒体格式和所述客户端的媒体接口;
19.响应于所述第一媒体配置信息与所述第二媒体配置信息至少部分相同,建立所述目标应用实例与所述客户端之间的数据通道。
20.在一种可能的实现方式中,
21.所述方法,还包括:
22.根据所述中转服务端获取客户端候选应用地址;
23.根据所述客户端候选应用地址进行寻址连接所述客户端以建立所述应用端与所述客户端之间的通信连接。
24.在第二方面,本技术提供了一种通信交互方法,应用于客户端,包括:
25.将预先生成的第一验证码发送至中转服务端以建立与所述中转服务端之间的通信连接;
26.发送实例控制请求至所述中转服务端;
27.响应于接收到所述中转服务端发送的来自应用端的目标应用实例的标识符,生成描述文本请求并将所述描述文本请求发送至所述中转服务端以建立所述目标应用实例与所述客户端之间的映射关系;
28.响应于接收到所述中转服务端发送的所述应用端的应答信息,根据所述应答信息建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道;
29.通过所述数据通道将指令数据传输至所述目标应用实例,并通过所述数据通道接收所述目标应用实例的媒体数据。
30.在一种可能的实现方式中,
31.所述方法,还包括:
32.根据所述中转服务端获取应用端候选应用地址;
33.根据所述应用端候选应用地址进行寻址连接所述应用端以建立所述客户端与所述应用端之间的通信连接。
34.在一种可能的实现方式中,
35.所述建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道,还包括:
36.获取所述客户端的第一媒体配置信息,并将所述第一媒体配置信息发送至所述中转服务端;其中,所述第一媒体配置信息,包括所述客户端的媒体类型、所述客户端的媒体格式和所述客户端的媒体接口;
37.响应于接收到所述中转服务端转发的所述应用端的第二媒体配置信息,确定所述第一媒体配置信息是否与所述第二媒体配置信息至少部分相同;其中,所述第二媒体配置
信息,包括所述应用端的媒体类型、所述应用端的媒体格式和所述应用端的媒体接口;
38.响应于所述第一媒体配置信息与所述第二媒体配置信息至少部分相同,建立与所述应用端之间的数据通道。
39.在一种可能的实现方式中,
40.所述方法,还包括:
41.响应于接收到所述应用端通过所述数据通道传输的所述目标应用实例的媒体数据,设置指向所述媒体数据的数据流标签;
42.展示所述媒体数据。
43.在第三方面,本技术提供了一种通信交互方法,应用于中转服务端,包括:
44.响应于接收到客户端发送的第一验证码和实例控制请求,根据所述第一验证码建立与所述客户端之间的通信连接,并转发所述实例控制请求至应用端;
45.响应于接收到所述应用端发送的目标应用实例的标识符,根据所述目标应用实例的标识符建立所述目标应用实例与所述客户端之间的映射关系;
46.响应于接收到所述客户端发送的描述文本会话请求,将所述描述文本会话请求转发至所述应用端;
47.响应于接收到所述应用端发送的应答信息,将所述应答信息转发至所述客户端;
48.将生成的客户端候选应用地址和应用端候选应用地址分别发送至所述应用端和所述客户端。
49.在一种可能的实现方式中,
50.所述中转服务端,包括:第一验证码库;
51.所述响应于接收到客户端发送的第一验证码和实例控制请求,根据所述第一验证码建立与所述客户端之间的通信连接,并转发所述实例控制请求至应用端,还包括:
52.接收所述客户端发送的第一验证码;
53.确定所述鉴权码是否存在于所述第一验证码库中;
54.响应于所述第一验证码存在于所述第一验证码库中,则建立与所述客户端之间的通信连接,并发送所述实例控制请求至所述应用端。
55.在一种可能的实现方式中,
56.所述确定所述第一验证码是否存在于所述第一验证码库中,还包括:
57.响应于所述第一验证码不存在于所述第一验证码库中,则向所述客户端发送第一重新验证指令;其中,所述第一重新验证指令用于指示所述客户端重新生成第一验证码,并将重新生成的第一验证码发送至所述中转服务端。
58.在一种可能的实现方式中,
59.所述启动信息,包括:第二验证码;所述中转服务端,包括:第二验证码库;
60.所述响应于接收到所述应用端发送的目标应用实例的标识符,根据所述目标应用实例的标识符建立所述目标应用实例与所述客户端之间的映射关系,还包括:
61.响应于接收到所述应用端发送的所述目标应用实例的标识符,确定所述第二验证码是否存在于所述第二验证码库中;
62.响应于所述第二验证码存在于所述第二验证码库中,建立与所述应用端之间的通信连接,并将所述目标应用实例的标识符发送至所述客户端。
63.在一种可能的实现方式中,
64.所述响应于接收到所述应用端发送的目标应用实例的标识符,确定所述第二验证码是否存在于所述第二验证码库中,之后还包括:
65.响应于所述第二验证码不存在于所述第二验证码库中,则向所述应用端发送第二重新验证指令;其中,所述第二重新验证指令用于指示所述应用端重新生成第二验证码,并将重新生成的第二验证码发送至所述中转服务端。
66.在一种可能的实现方式中,
67.所述反馈信息,还包括:通用唯一识别码;
68.所述方法,还包括:
69.将所述通用唯一识别码与所述第一验证码绑定以确定所述客户端和所述应用端的关联关系。
70.在一种可能的实现方式中,
71.所述将所述反馈信息发送至所述客户端,进一步包括:
72.将所述反馈信息发送至与所述应用端存在所述关联关系的所述客户端。
73.在第四方面,本技术提供了一种通信交互系统,包括:
74.应用端,被配置为实现如第一方面所述的通信交互方法;
75.客户端,被配置为实现如第二方面所述的通信交互方法;
76.中转服务端,被配置为实现如第三方面所述的通信交互方法。
77.从上面所述可以看出,本技术提供的一种通信交互方法及系统、应用端、客户端、中转服务端,在接收到中转服务端转发的来自于客户端的实例控制请求,应用端确定在运行在其上的多个资源实例中是否存在可用的资源实例,如果存在,则由应用端发送目标应用实例的标识符至中转服务端,从而建立所述目标应用实例与所述客户端之间的映射关系;当应用端接收到中转服务端转发的来自客户端的描述文本请求,根据所述映射关系生成针对所述描述文本会话请求的应答信息,并将应答信息通过中转服务端发送至客户端。进一步建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道,通过所述数据通道将所述目标应用实例的媒体数据发送至所述客户端,并通过所述数据通道将所述客户端发送的指令数据传输至所述目标应用实例。通过建立客户端和应用端之间的通信连接,使得客户端可以直接对应用端上的应用实例进行控制,并且应用实例可以运行于任意平台,解除了宿主平台对应用实例的限制,提高了应用实例控制的适用性。且将应用实例运行于应用端,使得不仅仅是使客户端控制一个应用实例这样的程序,而是与应用端进行端与端之间的通信交互,而应用端上可以运行有多个应用实例,进而使得客户端可以控制多个应用实例,提高了资源的利用率,降低了应用实例控制的使用成本。
附图说明
78.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
79.图1示出了本技术实施例所提供的一种应用于应用端的通信交互方法的示例性流
程示意图。
80.图2示出了根据本技术的实施例的客户端、应用端与中转服务端之间建立通信连接的示例性流程示意图。
81.图3示出了本技术实施例所提供的一种应用于客户端的通信交互方法的示例性流程示意图。
82.图4示出了本技术实施例所提供的一种应用于中转服务端的通信交互方法的示例性流程示意图。
83.图5示出了本技术实施例所提供的一种通信交互系统的示例性结构示意图。
84.图6示出了本技术实施例所提供的一种电子设备的示例性结构示意图。
具体实施方式
85.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
86.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
87.如背景技术部分所述,相关技术中,远程连接实时创作平台的方法通常是将实时创作平台(也可称为unity)运行在windows系统宿主平台上,用户通过远程桌面技术连接至宿主平台,从而通过浏览器间接地在宿主平台上操作实时创作平台。
88.申请人通过研究发现,相关技术中,受限于宿主平台,无法在同一宿主平台运行多个unity实例(也即,实施创作平台实例)。并且当需要将unity实例运行在其他平台(如macos平台)时,受限于所提供的的远程桌面技术的兼容性,无法及时提供远程服务,造成相关技术中无法跨操作系统对unity实例连接通信,且只能连接一个unity实例的问题。
89.正因如此,本技术提供的一种通信交互方法及系统、应用端、客户端、中转服务端,在接收到中转服务端转发的来自于客户端的实例控制请求,应用端确定在运行在其上的多个资源实例中是否存在可用的资源实例,如果存在,则由应用端发送目标应用实例的标识符至中转服务端,从而建立所述目标应用实例与所述客户端之间的映射关系;当应用端接收到中转服务端转发的来自客户端的描述文本请求,根据所述映射关系生成针对所述描述文本会话请求的应答信息,并将应答信息通过中转服务端发送至客户端。进一步建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道,通过所述数据通道将所述目标应用实例的媒体数据发送至所述客户端,并通过所述数据通道将所述客户端发送的指令数据传输至所述目标应用实例。通过建立客户端和应用端之间的通信连接,使得客户端可以直接对应用端上的应用实例进行控制,并且应用实例可以运行于任意平台,解除了宿主平台对应用实例的限制,提高了应用实例控制的适用性。且将应用实例运行于应用端,使得
不仅仅是使客户端控制一个应用实例这样的程序,而是与应用端进行端与端之间的通信交互,而应用端上可以运行有多个应用实例,进而使得客户端可以控制多个应用实例,提高了资源的利用率,降低了应用实例控制的使用成本。
90.下面通过具体的实施例来对本技术实施例所提供的通信交互方法进行具体说明。
91.图1示出了本技术实施例所提供的一种应用于应用端的通信交互方法的示例性流程示意图。
92.参考图1,本技术实施例所提供的一种应用于应用端的通信交互方法具体包括以下步骤:
93.s102:响应于接收到中转服务端转发的来自客户端的实例控制请求,确定是否存在可用的应用实例。
94.s104:响应于存在可用的所述应用实例,将待分配的所述应用实例中的目标应用实例的标识符发送至所述中转服务端,以建立所述目标应用实例与所述客户端之间的映射关系。
95.s106:响应于接收到所述中转服务端转发的来自所述客户端的描述文本会话请求,根据所述映射关系生成针对所述描述文本会话请求的应答信息,并将所述应答信息通过所述中转服务端转发至所述客户端,以建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道。
96.s108:通过所述数据通道将所述目标应用实例的媒体数据发送至所述客户端,并通过所述数据通道将所述客户端发送的指令数据传输至所述目标应用实例。
97.图2示出了根据本技术的实施例的客户端、应用端与中转服务端之间建立通信连接的示例性流程示意图。
98.参考图2,针对于步骤s102,本技术可以应用于通信交互系统,其中包括应用端、客户端和中转服务端,其中中转服务端可以包括stun服务端、websocket服务端和调度服务端。本实施例中,应用端中可以运行有多个资源实例,该资源实例可以为例如unity实例,也即实施创作平台实例,为方便说明本技术的实施方案,下文以资源实例为unity实例为例进行说明。当应用端接收到由中转服务端中的调度服务端转发的来自于客户端发送的资源实例控制请求后,可以准备为客户端分配unity实例。因为在应用端上可以运行多个unity实例,所以应用端可以确定在其上运行的多个unity实例中是否存在至少一个可用的unity实例以提供给客户端。
99.针对于步骤s104,当应用端确定在其上运行的多个unity实例中存在至少一个可用的unity实例,则可以发送目标应用实例的标识符至中转服务端,从而建立应用端与中转服务端中的websocket服务端之间的通信连接。其中,还可以发送反馈信息至中转服务器,反馈信息可以包括运行在应用端的多个unity实例中至少一个unity实例的启动信息,从而告知客户端,其能够控制的unity实例已经被启动,处于待控制状态。
100.需要说明的是,来自于客户端的资源实例控制请求中可以包括客户端指定的需要控制的目标unity实例的对应信息,例如可以为该目标unity实例的id或识别码等。则应用端可以确定在其上运行的目标unity实例是否可用,如果可用则将携带有目标unity实例启动信息的反馈信息发送至中转服务端中的websocket服务端,进而使得应用端与中转服务端中的websocket服务端建立通信连接。
101.在一些实施例中,如果应用端确定其上不存在任何一个可用的unity实例,例如此时因为故障无法启动任何一个unity实例或目标unity实例,抑或没有空闲的可用的unity实例可供客户端控制,抑或剩余可用的unity实例数量不满足客户端在资源控制请求中请求控制的unity实例数量,则生成排队通知信息,应用端将该排队通知信息通过中转服务端转发至客户端。其中,排队通知信息可以用来指示客户端进入排队状态,等待应用端上可用的unity实例能够满足资源实例控制请求中的数量或指定的目标unity实例为止。
102.可以理解的是,可以根据预设的时间间隔,每隔一段时间确定一次应用端上可用的unity实例是否能够满足资源实例控制请求中的数量或指定的目标unity实例,如果应用端上可用的unity实例能够满足资源实例控制请求中的数量或指定的目标unity实例,则可以发送反馈信息至中转服务端中的websocket服务端。并且,随着unity实例的启动,应用端可以生成一串随机uuid(也可称为通用唯一识别码)字符串,进而与中转服务端中的websocket服务端建立通信连接。
103.针对于步骤s106,当应用端接收到中转服务端中的websocket服务端转发的来自于客户端发送的描述文本会话请求(offer sdp),可以调用rtcpeerconnection.setremotedescription方法进行媒体协商,之后再调用rtcpeerconnection.createanswer方法根据接收到的描述文本会话请求,创建应用端的应答信息,其中,应答信息包括应用端的媒体描述(answer sdp),进而将应答信息通过中转服务端中的websocket服务端发送至客户端。
104.参考图2,在一些实施例中,应用端可以访问中转服务端中的stun服务端,通过向stun服务端发送绑定请求(binding request),从而获取与应用端对应的应用端候选应用地址(ice candidate)。其中,stun服务器可以允许所有的nat(网络地址转换器)客户端(如防火墙后边的计算机)或应用端与位于局区域网以外的应用端或客户端实现通信连接。通过stun服务器,客户端或应用端可以获取其自身的候选应用地址(也即公共地址)、挡在其前面的nat类型和通过nat与特定局部端口相连的因特网方端口。这些信息将被用于建立客户端与应用端之间的udp(用户数据报协议)通信,以便实现二者的通信连接。
105.参考图2,在应用端获取了自身的应用端候选应用地址后,通过websocket服务端将应用端候选应用地址发送至客户端,使得客户端可以根据应用端候选应用地址与应用端建立通信连接。
106.在一些实施例中,为了使得应用端和客户端建立通信连接,在应用端将应用端候选应用地址通过websocket服务端发送至客户端的同时,应用端也可以通过websocket服务端接收到由客户端发送的客户端候选应用地址。
107.在一些实施例中,应用端可以根据客户端候选应用地址与客户端建立通信连接,例如,应用端可以根据客户端候选应用地址进行寻址以连接客户端,从而建立应用端与客户端之间的通信连接。
108.进一步地,应用端可以获取其自身的第二媒体配置信息,并将第二媒体配置信息发送至websocket服务端,等待websocket服务端转发来自于客户端发送的客户端的第一媒体配置信息。其中,第二媒体配置信息,可以包括应用端的媒体类型、应用端的媒体格式和应用端的媒体接口;第一媒体配置信息,可以包括客户端的媒体类型、客户端的媒体格式和客户端的媒体接口。当应用端接收到第一媒体配置信息,进而判断第一媒体配置信息是否与第二媒体配置信息部分相同,例如两者中的媒体格式都包含了音频的mp3格式。在确定了
第一媒体配置信息与第二媒体配置信息至少部分相同后,可以建立应用端与客户端之间的数据通道。
109.再进一步地,在建立了应用端与客户端之间的通信连接以及数据通道之后,处于待控制状态的unity实例等待应用端接收来自于客户端的控制指令。当应用端接收到客户端发送的控制指令,可以使处于待控制状态的至少一个unity实例被客户端的控制指令所控制。
110.在一些实施例中,当应用端接收到客户端的实例控制指令,可以通过媒体通道向客户端发送被控制指令所控制的unity实例的数据流,进而使得数据流在客户端可以被播放展示。其中,数据流可以为音视频流。
111.图3示出了本技术实施例所提供的一种应用于客户端的通信交互方法的示例性流程示意图。
112.参考图3,本技术实施例所提供的一种应用于客户端的通信交互方法具体包括以下步骤:
113.s302:将预先生成的第一验证码发送至中转服务端以建立与所述中转服务端之间的通信连接。
114.s304:发送实例控制请求至所述中转服务端。
115.s306:响应于接收到所述中转服务端发送的来自应用端的目标应用实例的标识符,生成描述文本请求并将所述描述文本请求发送至所述中转服务端以建立所述目标应用实例与所述客户端之间的映射关系。
116.s308:响应于接收到所述中转服务端发送的所述应用端的应答信息,根据所述应答信息建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道。
117.s310:通过所述数据通道将指令数据传输至所述目标应用实例,并通过所述数据通道接收所述目标应用实例的媒体数据。
118.针对于步骤s302,客户端可以预先生成第一验证码,并将第一验证码发送至中转服务端中的websocket服务端,进而与中转服务端建立通信连接。其中,第一验证码可以为6位的随机鉴权码。
119.在一些实施例中,客户端可以通过将第一验证码放置于统一资源定位符(url)中,进而与中转服务端中的websocket服务端建立通信连接。
120.针对于步骤s304,客户端想要对应用端的unity实例进行控制时,可以发送实例控制请求至websocket服务端,进而由websocket服务端将该实例控制请求转发至调度服务端,使得调度服务端可以根据实例控制请求向应用端请求unity实例的调度。
121.针对于步骤s306,当客户端接收到由websocket服务端转发的来自应用端的目标应用实例的标识符和反馈消息,读取到反馈消息中携带的应用端的多个unity实例中至少一个unity实例的启动信息,则可以生成描述文本会话请求,并将描述文本会话请求通过websocket服务端发送至应用端。
122.参考图2,在一些实施例中,客户端在接收到目标应用实例的标识符后,在本地创建peerconnection,之后调用rtcpeerconnection.createoffer方法生成客户端的描述文本会话请求,具体可以为媒体描述offer sdp,通过websocket服务端将描述文本会话请求发送至应用端。
123.针对于步骤s308,由于应用端可以根据接收到的描述文本会话请求生成应答信息,也即媒体描述answer sdp,并通过websocket服务端发送至客户端,所以当客户端接收到由websocket服务端转发的应用端发送的应答信息,可以从websocket服务端获取到应用端发送的应用端候选应用地址。
124.参考图2,在客户端获取了自身的客户端候选应用地址后,通过websocket服务端将客户端候选应用地址发送至应用端,使得应用端可以根据客户端候选应用地址与客户端建立通信连接。
125.参考图2,在一些实施例中,客户端可以访问中转服务端中的stun服务端,通过向stun服务端发送绑定请求(binding request),从而获取与客户端对应的客户端候选应用地址(ice candidate)。其中,stun服务器可以允许所有的nat(网络地址转换器)客户端(如防火墙后边的计算机)或应用端与位于局区域网以外的应用端或客户端实现通信连接。通过stun服务器,客户端或应用端可以获取其自身的候选应用地址(也即公共地址)、挡在其前面的nat类型和通过nat与特定局部端口相连的因特网方端口。这些信息将被用于建立客户端与应用端之间的udp(用户数据报协议)通信,以便实现二者的通信连接。
126.在一些实施例中,客户端可以根据获取到的应用端候选应用地址,通过寻址的方式与应用端建立通信连接,从而控制应用端上与客户端对应的进入待控制状态的unity实例。
127.进一步地,客户端可以获取其自身的第一媒体配置信息,并将第一媒体配置信息发送至websocket服务端,等待websocket服务端转发来自于应用端发送的应用端的第二媒体配置信息。其中,第一媒体配置信息,可以包括客户端的媒体类型、客户端的媒体格式和客户端的媒体接口;第二媒体配置信息,可以包括应用端的媒体类型、应用端的媒体格式和应用端的媒体接口。当客户端接收到第二媒体配置信息,进而判断第一媒体配置信息是否与第二媒体配置信息部分相同,例如两者中的媒体格式都包含了音频的mp3格式。在确定了第一媒体配置信息与第二媒体配置信息至少部分相同后,可以建立应用端与客户端之间的媒体数据传输通道。
128.再进一步地,在建立了应用端与客户端之间的通信连接以及媒体数据传输通道之后,客户端可以向处于待控制状态的unity实例发送控制指令。当应用端接收到客户端发送的控制指令,可以使处于待控制状态的至少一个unity实例被客户端的控制指令所控制。
129.在一些实施例中,当应用端接收到客户端的资源实例控制指令,可以通过媒体通道向客户端发送被控制指令所控制的unity实例的数据流,当客户端接收到应用端发送的数据流后,可以通过设置数据流标签,用于指向数据流,进一步地,对数据流进行展示。其中,数据流标签可以为video标签,其中srcobejct属性指向数据流,数据流可以为音视频流,当数据流为音视频流时,客户端可以调用play方法对音视频流进行播放,从而达到展示数据流的目的。
130.图4示出了本技术实施例所提供的一种应用于中转服务端的通信交互方法的示例性流程示意图。
131.参考图4,本技术实施例所提供的一种应用于中转服务端的通信交互方法具体包括以下步骤:
132.s402:响应于接收到客户端发送的第一验证码和实例控制请求,根据所述第一验
证码建立与所述客户端之间的通信连接,并转发所述实例控制请求至应用端。
133.s404:响应于接收到所述应用端发送的目标应用实例的标识符,根据所述目标应用实例的标识符建立所述目标应用实例与所述客户端之间的映射关系。
134.s406:响应于接收到所述客户端发送的描述文本会话请求,将所述描述文本会话请求转发至所述应用端。
135.s408:响应于接收到所述应用端发送的应答信息,将所述应答信息转发至所述客户端。
136.s410:将生成的客户端候选应用地址和应用端候选应用地址分别发送至所述应用端和所述客户端。
137.针对于步骤s402,中转服务端中的websocket服务端接收到客户端发送的第一验证码和实例控制请求后,可以根据第一验证码建立与客户端之间的通信连接,例如对第一验证码进行验证,如果通过验证后,证明客户端的身份合法,则可以与客户端之间建立通信连接,进一步可以将实例控制请求发送至调度服务端,由调度服务端向应用端转发实例控制请求以发起调用unity实例的调用。
138.在一些实施例中,中转服务端中的websocket服务端可以设置有第一验证码库,在websocket服务端接收到客户端发送的第一验证码,例如随机鉴权码,websocket服务端可以进一步确定该第一验证码时候存在于第一验证码库中,如果第一验证码存在于第一验证码库中,则可以建立websocket服务端与客户端之间的通信连接,进而向调度服务请求空闲的unity,通过调度服务将实例控制请求发送至应用端,从而请求调用应用端中的unity实例。
139.需要说明的是,如果websocket服务端确定第一验证码不存在与第一验证码库中后,则可以向客户端发送第一重新验证指令,而客户端在接收到第一重新验证指令后,可以在第一重新验证指令的指示下重新生成新的第一验证码,并将重新生成的新的第一验证码发送至websocket服务端重新进行验证。
140.可以理解的是,除了利用鉴权码进行验证以外,也可以通过向websocket服务端输入账号密码,由websocket服务端验证客户端输入的账号密码是否存在于websocket服务端预存的密码库中,如果存在,则客户端的身份验证为合法身份,如果不存在,则可以向客户端发送第一重新验证指令,当客户端连续输入五次无法通过验证的账号密码后,将客户端进行冻结,使其无法连接至websocket服务端,从而保证客户端和websocket服务端之间的通信连接的可靠性和安全性。
141.针对于步骤s404,中转服务端中的websocket服务端接收到由应用端发送的目标应用实例的标识符和反馈信息后,可以根据目标应用实例的标识符建立与应用端之间的通信连接,进一步将反馈信息发送至客户端。需要说明的是,反馈信息可以包括应用端的多个unity实例中的至少一个unity实例的启动信息。
142.在一些实施例中,应用端发送的反馈信息中可以包括由用于验证应用端身份的第二验证码,而在websocket服务端中对应设置有第二验证码库。在websocket服务端接收到应用端发送的第二验证码,例如随机鉴权码,websocket服务端可以进一步确定该第二验证码时候存在于第二验证码库中,如果第二验证码存在于第二验证码库中,则可以建立websocket服务端与应用端之间的通信连接,进而将反馈信息转发至客户端。
143.需要说明的是,如果websocket服务端确定第二验证码不存在与第二验证码库中后,则可以向应用端发送第二重新验证指令,而应用端在接收到第二重新验证指令后,可以在第二重新验证指令的指示下重新生成新的第二验证码,并将重新生成的新的第二验证码发送至websocket服务端重新进行验证。
144.可以理解的是,除了利用鉴权码进行验证以外,也可以通过向websocket服务端输入账号密码,由websocket服务端验证应用端输入的账号密码是否存在于websocket服务端预存的密码库中,如果存在,则应用端的身份验证为合法身份,如果不存在,则可以向应用端发送第二重新验证指令,当应用端连续输入五次无法通过验证的账号密码后,将应用端进行冻结,使其无法连接至websocket服务端,从而保证应用端和websocket服务端之间的通信连接的可靠性和安全性。
145.在一些实施例中,应用端发送的反馈信息中,还可以包括通用唯一识别码,随着unity实例的启动,应用端可以生成一串随机uuid(也可称为通用唯一识别码)字符串,进而与中转服务端中的websocket服务端建立通信连接。websocket服务端可以将应用端的通用唯一识别码与客户端的第一验证码绑定,从而确定客户端与应用端之间的关联关系,使得建立了关联关系的客户端与应用端之间相互对应,使得客户端在向应用端发起请求时,与该客户端存在关联关系的应用端可以及时给予回应。
146.在一些实施例中,websocket服务端在讲反馈信息发送至客户端时,可以基于客户端与应用端之间的关联关系,将该反馈信息或其他发送至应用端的信息,发送至与该客户端存在关联关系的应用端。
147.针对于步骤s406,当websocket服务端接收到客户端发送的描述文本会话请求,也即媒体描述offer sdp,可以将描述文本会话请求转发至应用端。
148.针对于步骤s408,当websocket服务端接收到应用端发送的应答信息,其中应答信息可以包括应用端的媒体描述answer sdp,可以将应答信息转发至客户端。
149.在一些实施例中,当客户端在stun服务端获取了客户端候选应用地址后,通过websocket服务端将客户端候选应用地址转发至应用端,当应用端在stun服务端获取了应用端候选应用地址后,通过websocket服务端将应用端候选应用地址转发至客户端。
150.参考图2,在一些实施例中,应用端可以访问中转服务端中的stun服务端,通过向stun服务端发送绑定请求(binding request),从而获取与应用端对应的应用端候选应用地址(ice candidate)。其中,stun服务器可以允许所有的nat(网络地址转换器)客户端(如防火墙后边的计算机)或应用端与位于局区域网以外的应用端或客户端实现通信连接。通过stun服务器,客户端或应用端可以获取其自身的候选应用地址(也即公共地址)、挡在其前面的nat类型和通过nat与特定局部端口相连的因特网方端口。这些信息将被用于建立客户端与应用端之间的udp(用户数据报协议)通信,以便实现二者的通信连接。
151.参考图2,在一些实施例中,客户端可以访问中转服务端中的stun服务端,通过向stun服务端发送绑定请求(binding request),从而获取与客户端对应的客户端候选应用地址(ice candidate)。其中,stun服务器可以允许所有的nat(网络地址转换器)客户端(如防火墙后边的计算机)或应用端与位于局区域网以外的应用端或客户端实现通信连接。通过stun服务器,客户端或应用端可以获取其自身的候选应用地址(也即公共地址)、挡在其前面的nat类型和通过nat与特定局部端口相连的因特网方端口。这些信息将被用于建立客
户端与应用端之间的udp(用户数据报协议)通信,以便实现二者的通信连接。
152.从上面所述可以看出,本技术提供的一种通信交互方法及系统、应用端、客户端、中转服务端,在接收到中转服务端转发的来自于客户端的实例控制请求,应用端确定在运行在其上的多个资源实例中是否存在可用的资源实例,如果存在,则由应用端发送目标应用实例的标识符至中转服务端,从而建立所述目标应用实例与所述客户端之间的映射关系;当应用端接收到中转服务端转发的来自客户端的描述文本请求,根据所述映射关系生成针对所述描述文本会话请求的应答信息,并将应答信息通过中转服务端发送至客户端。进一步建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道,通过所述数据通道将所述目标应用实例的媒体数据发送至所述客户端,并通过所述数据通道将所述客户端发送的指令数据传输至所述目标应用实例。通过建立客户端和应用端之间的通信连接,使得客户端可以直接对应用端上的应用实例进行控制,并且应用实例可以运行于任意平台,解除了宿主平台对应用实例的限制,提高了应用实例控制的适用性。且将应用实例运行于应用端,使得不仅仅是使客户端控制一个应用实例这样的程序,而是与应用端进行端与端之间的通信交互,而应用端上可以运行有多个应用实例,进而使得客户端可以控制多个应用实例,提高了资源的利用率,降低了应用实例控制的使用成本。
153.需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
154.需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
155.图5示出了本技术实施例所提供的一种通信交互系统的示例性结构示意图。
156.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种通信交互系统。
157.参考图5,所述通信交互系统,包括:应用端、客户端和中转服务端;其中,
158.应用端,被配置为
159.响应于接收到中转服务端转发的来自客户端的实例控制请求,确定是否存在可用的应用实例;
160.响应于存在可用的所述应用实例,将待分配的所述应用实例中的目标应用实例的标识符发送至所述中转服务端,以建立所述目标应用实例与所述客户端之间的映射关系;
161.响应于接收到所述中转服务端转发的来自所述客户端的描述文本会话请求,根据所述映射关系生成针对所述描述文本会话请求的应答信息,并将所述应答信息通过所述中转服务端转发至所述客户端,以建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道;
162.通过所述数据通道将所述目标应用实例的媒体数据发送至所述客户端,并通过所述数据通道将所述客户端发送的指令数据传输至所述目标应用实例;
163.客户端,被配置为
164.将预先生成的第一验证码发送至中转服务端以建立与所述中转服务端之间的通信连接;
165.发送实例控制请求至所述中转服务端;
166.响应于接收到所述中转服务端发送的来自应用端的目标应用实例的标识符,生成描述文本请求并将所述描述文本请求发送至所述中转服务端以建立所述目标应用实例与所述客户端之间的映射关系;
167.响应于接收到所述中转服务端发送的所述应用端的应答信息,根据所述应答信息建立所述应用端中的所述目标应用实例与所述客户端之间的数据通道;
168.通过所述数据通道将指令数据传输至所述目标应用实例,并通过所述数据通道接收所述目标应用实例的媒体数据;
169.中转服务端,被配置为
170.响应于接收到客户端发送的第一验证码和实例控制请求,根据所述第一验证码建立与所述客户端之间的通信连接,并转发所述实例控制请求至应用端;
171.响应于接收到所述应用端发送的目标应用实例的标识符,根据所述目标应用实例的标识符建立所述目标应用实例与所述客户端之间的映射关系;
172.响应于接收到所述客户端发送的描述文本会话请求,将所述描述文本会话请求转发至所述应用端;
173.响应于接收到所述应用端发送的应答信息,将所述应答信息转发至所述客户端;
174.将生成的客户端候选应用地址和应用端候选应用地址分别发送至所述应用端和所述客户端。
175.在一种可能的实现方式中,所述应用端进一步被配置为:
176.响应于不存在可用的所述应用实例,生成排队通知信息,并将所述排队通知信息通过所述中转服务端转发至所述客户端;其中,所述排队通知信息用于指示所述客户端进入排队状态;
177.所述方法还包括:
178.针对处于排队状态的所述客户端,根据预设时间间隔确定是否存在可用的应用实例。
179.在一种可能的实现方式中,所述应用端进一步被配置为:
180.获取所述应用端的第二媒体配置信息,并将所述第二媒体配置信息发送至所述中转服务端;其中,所述第二媒体配置信息,包括所述应用端的媒体类型、所述应用端的媒体格式和所述应用端的媒体接口;
181.响应于接收到所述中转服务端转发的所述客户端的第一媒体配置信息,确定所述第一媒体配置信息是否与所述第二媒体配置信息至少部分相同;其中,所述第一媒体配置信息,包括所述客户端的媒体类型、所述客户端的媒体格式和所述客户端的媒体接口;
182.响应于所述第一媒体配置信息与所述第二媒体配置信息至少部分相同,建立所述目标应用实例与所述客户端之间的数据通道。
183.在一种可能的实现方式中,所述应用端进一步被配置为:
184.根据所述中转服务端获取客户端候选应用地址;
185.根据所述客户端候选应用地址进行寻址连接所述客户端以建立所述应用端与所述客户端之间的通信连接。
186.在一种可能的实现方式中,所述客户端进一步被配置为:
187.根据所述中转服务端获取应用端候选应用地址;
188.根据所述应用端候选应用地址进行寻址连接所述应用端以建立所述客户端与所述应用端之间的通信连接。
189.在一种可能的实现方式中,所述客户端进一步被配置为:
190.获取所述客户端的第一媒体配置信息,并将所述第一媒体配置信息发送至所述中转服务端;其中,所述第一媒体配置信息,包括所述客户端的媒体类型、所述客户端的媒体格式和所述客户端的媒体接口;
191.响应于接收到所述中转服务端转发的所述应用端的第二媒体配置信息,确定所述第一媒体配置信息是否与所述第二媒体配置信息至少部分相同;其中,所述第二媒体配置信息,包括所述应用端的媒体类型、所述应用端的媒体格式和所述应用端的媒体接口;
192.响应于所述第一媒体配置信息与所述第二媒体配置信息至少部分相同,建立与所述应用端之间的数据通道。
193.在一种可能的实现方式中,所述客户端进一步被配置为:
194.响应于接收到所述应用端通过所述数据通道传输的所述目标应用实例的媒体数据,设置指向所述媒体数据的数据流标签;
195.展示所述媒体数据。
196.在一种可能的实现方式中,所述中转服务端,包括:第一验证码库;
197.所述中转服务端进一步被配置为:
198.接收所述客户端发送的第一验证码;
199.确定所述鉴权码是否存在于所述第一验证码库中;
200.响应于所述第一验证码存在于所述第一验证码库中,则建立与所述客户端之间的通信连接,并发送所述实例控制请求至所述应用端。
201.在一种可能的实现方式中,所述中转服务端进一步被配置为:
202.响应于所述第一验证码不存在于所述第一验证码库中,则向所述客户端发送第一重新验证指令;其中,所述第一重新验证指令用于指示所述客户端重新生成第一验证码,并将重新生成的第一验证码发送至所述中转服务端。
203.在一种可能的实现方式中,所述启动信息,包括:第二验证码;所述中转服务端,包括:第二验证码库;
204.所述中转服务端进一步被配置为:
205.响应于接收到所述应用端发送的所述目标应用实例的标识符,确定所述第二验证码是否存在于所述第二验证码库中;
206.响应于所述第二验证码存在于所述第二验证码库中,建立与所述应用端之间的通信连接,并将所述目标应用实例的标识符发送至所述客户端。
207.在一种可能的实现方式中,所述中转服务端进一步被配置为:
208.响应于所述第二验证码不存在于所述第二验证码库中,则向所述应用端发送第二重新验证指令;其中,所述第二重新验证指令用于指示所述应用端重新生成第二验证码,并
将重新生成的第二验证码发送至所述中转服务端。
209.在一种可能的实现方式中,所述反馈信息,还包括:通用唯一识别码;
210.所述中转服务端进一步被配置为:
211.将所述通用唯一识别码与所述第一验证码绑定以确定所述客户端和所述应用端的关联关系。
212.在一种可能的实现方式中,所述中转服务端进一步被配置为:
213.将所述反馈信息发送至与所述应用端存在所述关联关系的所述客户端。
214.为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
215.上述实施例的系统用于实现前述任一实施例中相应的应用于应用端的通信交互方法,或前述任一实施例中相应的应用于客户端的通信交互方法,或前述任一实施例中相应的应用于中转服务端的通信交互方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
216.图6示出了本技术实施例所提供的一种电子设备的示例性结构示意图。
217.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一实施例所述的应用于应用端的通信交互方法,或上述任意一实施例所述的应用于客户端的通信交互方法,或上述任意一实施例所述的应用于中转服务端的通信交互方法。图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器610、存储器620、输入/输出接口630、通信接口640和总线650。其中处理器610、存储器620、输入/输出接口630和通信接口640通过总线650实现彼此之间在设备内部的通信连接。
218.处理器610可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
219.存储器620可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
220.输入/输出接口630用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
221.通信接口640用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
222.总线650包括一通路,在设备的各个组件(例如处理器610、存储器620、输入/输出接口630和通信接口640)之间传输信息。
223.需要说明的是,尽管上述设备仅示出了处理器610、存储器620、输入/输出接口
630、通信接口640以及总线650,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
224.上述实施例的电子设备用于实现前述任一实施例中相应的应用于应用端的通信交互方法,或前述任一实施例中相应的应用于客户端的通信交互方法,或前述任一实施例中相应的应用于中转服务端的通信交互方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
225.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
226.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
227.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
228.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献