一种多端远程协同通信方法、装置、设备及存储介质与流程

未命名 09-09 阅读:99 评论:0


1.本技术涉及远程通信技术领域,尤其涉及一种多端远程协同通信方法、装置、设备及存储介质。


背景技术:

2.随着互联网和云技术的发展,基于多个异地数据中心建立的云计算系统的应用越来越广泛,为了提高后续开发和维护的便捷性,这就要求云计算系统支持远程访问功能。
3.目前,分享对象登录远程设备进行操作时,如果遇到需要其它对象协作的场景,通常会将其个人的登录信息(如账号、密码等)发送给其它对象,从而实现多人远程协同操作同一设备的目的。
4.然而,采用上述方式实现远程协同操作,通常存在以下缺陷:1、登录信息存在严重的泄露风险由于分享对象需要通过网络将个人的登陆信息进行转发,而网络环境复杂,可能存在病毒、黑客等不利因素,因此,在转发过程中,登录信息可能会被泄露。
5.2、增加远程协同操作的负荷由于已有的终端远程登录软件在一次登录会话中只支持一位对象的远程操作,这样,不同对象对远程设备进行协同操作时,需要使用同一登录信息分别建立登录会话连接,导致通信效率较低,且会造成登录操作的不便。
6.因此,提高多端远程协同通信的安全性和高效性,成为目前亟待解决的问题。


技术实现要素:

7.本技术实施例提供了一种多端远程通信方法、装置、设备及存储介质,用于提高远程通信的安全性和高效性。
8.一方面,本技术实施例提供一种多端远程协同通信方法,应用于服务器,包括:接收第一终端发送的用于登录远程设备的登录信息;将所述登录信息发送至所述远程设备进行登录验证;当基于所述远程设备的验证通知确定登录成功时,为所述第一终端与所述远程设备间的协作会话创建一个协作会话标识并存储,以及创建一个协作会话队列,所述协作会话队列用于存储与所述第一终端存在协作关系的至少一个第二终端的标识;将所述协作会话标识发送给所述第一终端,以使所述第一终端将所述协作会话标识携带在协作会话分享链接中,发送至所述协作会话队列中的至少一个第二终端,以及,在接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,在所述第一终端和所述至少一个第二终端之间实现针对所述远程设备的协同操作。
9.另一方面,本技术实施例提供一种多端远程协同通信方法,应用于第一终端,包括:向服务器发送用于登录远程设备的登录信息,以使所述服务器将所述登录信息发
送至所述远程设备进行登陆验证;接收所述服务器发送的一个协作会话标识,所述协作会话标识是所述服务器基于所述远程设备的通知确定所述第一终端登陆成功时创建的;将所述协作会话标识携带在协作会话分享链接中,发送至协作会话队列中的至少一个第二终端,以使所述服务器在接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,在所述第一终端和所述至少一个第二终端之间实现针对所述远程设备的协同操作;其中,所述协作会话队列用于存储与所述第一终端存在协作关系的所述至少一个第二终端的标识。
10.另一方面,本技术实施例提供一种多端远程协同通信方法,应用于第二终端,包括:接收第一终端发送的协作会话分享链接,所述协作会话分享链接携带协作会话标识,所述协作会话标识是服务器将所述第一终端发送的用于登陆远程设备的登陆信息发送至远程设备进行登录验证后,确定所述第一终端登录成功时创建的;基于所述协作会话分享链接向所述服务器发送所述协作会话标识,以使所述服务器在所述第一终端和所述第二终端之间实现针对所述远程设备的协同操作,所述第二终端的标识存储于所述服务器创建的用于存储与所述第一终端存在协作关系的协作会话队列中。
11.另一方面,本技术实施例提供一种远程协同通信装置,包括:接收模块,用于接收第一终端发送的用于登录远程设备的登录信息;发送模块,用于将所述登录信息发送至所述远程设备进行登录验证;处理模块,用于当基于所述远程设备的验证通知确定登录成功时,为所述第一终端与所述远程设备间的协作会话创建一个协作会话标识并存储,以及创建一个协作会话队列,所述协作会话队列用于存储与所述第一终端存在协作关系的至少一个第二终端的标识;所述发送模块,还用于将所述协作会话标识发送给所述第一终端,以使所述第一终端将所述协作会话标识携带在协作会话分享链接中,发送至所述协作会话队列中的至少一个第二终端;所述处理模块,还用于在所述接收模块接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,在所述第一终端和所述至少一个第二终端之间实现针对所述远程设备的协同操作。
12.另一方面,本技术实施例提供一种远程协同通信装置,包括:发送模块,用于向服务器发送用于登录远程设备的登录信息,以使所述服务器将所述登录信息发送至所述远程设备进行登陆验证;接收模块,用于接收所述服务器发送的一个协作会话标识,所述协作会话标识是所述服务器基于所述远程设备的通知确定远程登陆成功时创建的;所述发送模块,还用于将所述协作会话标识携带在协作会话分享链接中,发送至协作会话队列中的至少一个第二终端,以使所述服务器在接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,与所述至少一个第二终端实现针对所述远程设备的协同操作;其中,所述协作会话队列用于存储与协作会话发起端存在协作关系
的至少一个第二终端的标识。
13.另一方面,本技术实施例提供一种远程协同通信装置,包括:接收模块,用于接收第一终端发送的协作会话分享链接,所述协作会话分享链接携带协作会话标识,所述协作会话标识是服务器将所述第一终端发送的用于登陆远程设备的登陆信息发送至远程设备进行登录验证后,确定所述第一终端登录成功时创建的;发送模块,用于基于所述协作会话分享链接向所述服务器发送所述协作会话标识,并在所述协作会话标识为所述第一终端与所述远程设备间的协作会话的标识时,被加入到所述服务器创建的用于存储与所述第一终端存在协作关系的协作会话队列中,实现与所述第一终端针对所述远程设备的系统操作。
14.另一方面,本技术实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述多端远程协同通信方法的步骤。
15.另一方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令被电子设备执行时实现上述多端远程协同通信方法的步骤。
16.另一方面,本技术实施例提供一种计算机程序产品,包含计算机程序,所述计算机程序被电子设备执行时实现上述多端远程协同通信方法的步骤。
17.本技术实施例的多端远程协同通信方法的有益效果如下:第一终端将登录信息发送给服务器,并经服务器转发给远程设备进行登陆验证以请求建立协同会话,当服务器接收到远程设备发送的登录成功的通知时,确定协同会话建立完成并为该协作会话创建一个协作会话标识进行存储,并将该协作会话标识发送给第一终端,第一终端通过将该协作会话标识携带在协作会话分享链接中发送给至少一个第二终端,从而使至少一个第二终端通过协作会话分享链接接入第一终端与远程设备的协作会话中,无需向至少一个第二终端发送登录信息便可使第二终端接入协作会话,这样,减少了登录信息被盗用或篡改的风险,提高了远程协同通信的安全性,同时,第二终端通过协作会话标识加入到第一终端与远程设备间的协作会话中,与第一终端共用一个会话,无需通过输入登录信息与远程设备建立会话连接,这样,减少了服务器建立多个会话时的运行负荷低,提高了多端远程协同通信的效率,且增加了第二终端登陆远程设备的便捷性。
18.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
19.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1为相关技术实现的多端远程协作流程图;图2为本技术实施例适用的一种应用场景图;
图3a为本技术实施例提供的一种协作会话的创建流程图;图3b为本技术实施例提供的一种协作会话的分享界面图;图4a为本技术实施例提供的一种加入协作会话的流程图;图4b为本技术实施例提供的一种申请协作会话的界面图;图4c为本技术实施例提供的一种加入协作会话的界面图;图4d为本技术实施例提供的协同操作的界面图;图5为基于单个服务器实现的多端远程协同通信的系统架构图;图6为本技术实施例提供的基于单服务器的多端远程协同操作流程图;图7a为本技术实施例提供的第二终端的写权限申请流程图;图7b为本技术实施例提供的第二终端加入协作会话后显示的界面图;图7c为本技术实施例提供的第一终端显示的权限管理界面图;图8为基于分布式集群实现的多端远程协同通信的系统架构图;图9为基于分布式集群登录协作会话的方法流程图;图10为基于分布式集群进行协作会话时第一终端的协同操作方法流程图;图11为基于分布式集群进行协作会话时第二终端的协同操作方法流程图;图12为本技术实施例提供的一种远程协同通信装置的结构图;图13为本技术实施例提供的另一种远程协同通信装置的结构图;图14为本技术实施例提供的另一种远程协同通信装置的结构图;图15为本技术实施例提供的电子设备的结构图。
具体实施方式
21.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本技术文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术技术方案保护的范围。
22.以下对本技术实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
23.协作会话是一种协同高效的完成合作项目的关键技术,多个终端通过与远程设备建立协作会话,从而帮助伙伴高效的完成合作项目,实现项目的协同开发。其中,在协作会话中,为解决不同角色的定位要求,提供了精细化的权限管控,使会话中的每个角色被赋予只读或读写权限。
24.云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。
25.云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算(cloud computing)来实现。
26.随着互联网和云技术的发展,基于多个异地数据中心建立的云计算系统的应用越来越广泛。不同于以往的并行分布式计算,云计算系统的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
27.下面对本技术实施例的设计思想进行概述。
28.软件开发过程中,对于一些大型项目,可能需要多个开发者共同协作完成,而多个开发者可能处于不同的地域,需要多端进行远程协同通信。
29.目前,已有的终端远程登录软件大多基于安全外壳(secure shell,ssh)协议进行远程协同操作。当分享对象需要帮助时,需要将自己登录到远程设备的登陆信息发送给其它对象,从而实现多个终端通过使用同一登录信息与远程设备建立多个会话的协同操作。
30.如图1所示,为已有的多端远程协作流程图,主要包括会话建立阶段、密钥交换阶段、身份验证阶段和加密通信阶段。其中,在会话建立阶段,客户端和服务端将各自支持的ssh协议版本列表发送给对端,从而从列表中协商一个二者共同支持的ssh协议版本,以及,客户端和服务端协商一组加密、解密、压缩和消息认证的算法。在密钥交换阶段,客户端和服务端基于协商的算法生成加解密所需的密钥信息并交换,客户端和服务端使用交换的密钥信息计算出相同的会话密钥。在身份验证阶段,客户端向服务器发送登录信息(如账号和密码等),服务端对登录信息进行验证,建立ssh连接。在加密通信阶段,客户端和服务端使用会话密钥对通信数据进行加密和解密,由于所有通过ssh连接传输的数据都经过加密处理,从而能够确保数据的机密性和完整性。
31.其中,ssh协议使用非对称加密和对称加密来实现安全通信。具体的,在会话建立阶段,客户端和服务器使用非对称加密算法进行密钥交换,以确保会话密钥的安全性;在加密通信阶段,会话密钥被用于对通信数据进行对称加密和解密操作,以提供高效的数据传输。
32.通过使用ssh协议,分享对象可以在不安全的网络中安全地登录到远程设备,并进行安全的文件传输和远程操作,无需担心重要信息的泄露。目前,ssh协议已成为远程管理和安全传输的标准工具之一。
33.然而,相关技术在使用ssh协议实现多端远程协同通信时,登陆信息转发过程中可能会被泄露,且由于远程登录软件在一次登录会话中只支持一位对象的远程操作,协作对象需要在本端输入分享对象的登录信息建立登录会话连接,操作不便且协作效率较低。
34.鉴于此,本技术实施例提供一种多端远程协同通信方法,该方法中,第一终端通过ssh协议登录到远程设备,建立协作会话,并将该协作会话的标识通过连接分享给至少一个第二终端,使得第二终端通过第一终端分享的链接接入到第一终端与远程设备的协作会话中,实现多端共用一个会话的远程协同操作,无需协作对象输入分享对象的登录信息登录到远程设备进行操作,减少了登录信息泄露的危险,提高了协同操作的便捷性和效率。
35.以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术实施例及实施例中的特征可以相互组合。
36.如图2所示,其为本技术实施例的应用场景示意图。该应用场景图中包括第一终端110、第二终端120、远程设备130以及服务器140。
37.在一种可选的实施方式中,第一终端110和第二终端120之间、第一终端110与服务
器140之间、第二终端120与服务器140之间、远程设备130与服务器140之间,可以通过有线网络或无线网络进行通信。
38.在本技术实施例中,第一终端110和第二终端120包括但不限于个人计算机、笔记本电脑、手机、平板、智能语音交互设备、智能家电、车载终端等,且第一终端110和第二终端120上安装有远程登录程序。远程设备则是存储有开发项目的相关信息,与第一终端110和第二终端120不在同一区域。服务器140则是远程登录程序的后台服务器,或者是专门用于进行远程登录的服务器,本技术不做具体限定。服务器140可以是多个物理服务器构成的分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
39.在该场景中,第一终端110接收分享对象输入的登录到远程设备130的登录信息并发送给服务器,服务器140接收到登录信息后向远程设备130发送协作会话请求,远程设备130对第一终端110发送的登陆信息进行登陆验证,并在验证成功后建立第一终端110和远程设备130间的协作会话。服务器140基于登陆成功的通知为第一终端110与远程设备130间的协作会话创建一个协作会话标识并存储,并发送给第一终端110。第一终端110将协作会话标识携带在协作会话分享链接终端发送给第二终端120,协作对象通过点击该协作会话分享链接,接入到第一终端110与远程设备130间的协作会话中。协作会话过程中,远程设备130通过服务器140将操作指令和操作结果同步给第一终端110和第二终端120,从而通过共用一个协作会话实现对远程设备的协同操作,提高了远程协同操作的安全性和效率。
40.需要说明的是,图2所示只是举例说明,实际上第二终端和服务器的数量不受限制,在本技术实施例中不做具体限定。
41.本技术实施例中,服务器可以是多个物理服务器组成一个分布式系统,而每个服务器为分布式系统中的一个节点;如本技术实施例所公开的多端远程协同通信方法,其中所涉及的协作会话标识、ip地址等可保存于节点上。
42.本发明实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。
43.例如,在智能交通场景中,当目标对象通过第一终端登陆到高速制系统对通行车辆进行费用结算时,由于etc故障无法确定通行车辆的起始站,因此,需要请求负责管理同一高速路线的协同对象通过第二终端提供通行车辆在起始站的通行信息,此时,第一终端可向第二终端发送携带协作会话标识的协作会话分享链接,协作对象通过点击该链接加入到协作会话中,并在高速控制系统中输入通行车辆在起始站的通行信息,从而完成通行车辆的协同收费操作。
44.下面结合上述描述的应用场景,参考附图来描述本技术示例性实施方式提供的多端远程协同通信方法,需要注意的是,上述应用场景仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。
45.本技术实施例提供的多端远程协同通信方法中,基于不同的对象角色,可分为分享端(记为第一终端,即分享对象使用的终端)与服务端的交互过程,以及协作端(记为第二终端,即协作对象使用的终端)与服务端的交互过程。
46.在分享端与服务端的交互过程中,多端远程协同通信的方法流程如图3a所示,该流程主要包括以下几步:
s301:第一终端响应于分享对象针对远程设备发送的远程登录操作,向服务器发送第一连接请求。
47.在一种示例中,分享对象通过开启第一终端上的远程登录程序进行远程登录操作,向服务器发送第一连接请求。其中,该第一连接请求的预设字段会标识本次登录会话类型是否为协作会话。
48.例如,若为协作会话,则该预设字段的取值为1,若为非协作会话,则该预设字段的取值为0。
49.由于本技术是针对多端远程协作通信的场景,因此,后续实施例针对开启协作会话的情况进行描述。
50.s302:服务器基于第一连接请求,与第一终端建立websocket连接。
51.服务器接收到第一连接请求后,采用tcp协议与第一终端建立三次握手后,再基于http协议与第一终端进行一次握手,从而与第一终端建立websocket连接。
52.s303:第一终端向服务器发送用于登录远程设备的登陆信息。
53.websocket 连接建立成功后,第一终端采用ssh协议,将分析对象输入的用于登录远程设备的登陆信息封装成数据帧发送给服务器。
54.可选的,登录信息至少包括账号、密码、密钥、远程设备的ip地址、远程设备的端口号。
55.s304:服务器将登陆信息发送至远程设备进行登陆验证。
56.服务器接收到登陆信息后,向远程设备发送远程登陆请求,并将第一终端发送的包含登录信息的数据帧发送给远程设备,由远程设备对第一终端的登录信息进行登录验证。
57.s305:当登陆成功后,服务器接收远程设备发送的验证成功通知,第一终端与远程设备间的协作会话建立完成。
58.当登录信息验证成功后,表示第一终端成功登录到远程设备,从而向服务器发送第一终端登录成功的通知,第一终端与远程设备间的协作会话建立完成。
59.s306:服务器为第一终端与远程设备间的协作会话创建一个协作会话标识并存储,以及创建一个用于存储与第一终端存在协作关系的至少一个第二终端的标识的协作会话队列。
60.第一终端与远程设备间的协作会话建立完成后,服务器为该协作会话建立唯一的协作会话标识(如id号),并存储到数据库中,同时,创建一个协作会话队列,该协作会话队列用于存储与第一终端存在协作关系的至少一个第二终端。
61.s307:服务器将协作会话标识发送给第一终端。
62.s308:第一终端基于协作会话标识,生成一个用于发送给与协作会话队列中的至少一个第二终端的协作会话分享链接,以在第一终端和至少一个第二终端之间实现针对远程设备的协同操作。
63.在一种示例中,分享对象对应的用户界面如图3b所示,分享对象作为协作会话的创建者,其可通过点击“复制链接”选项,将包含协作会话标识的协作会话分享链接发送给至少一个协同对象对应的第二终端,从而将字少一个协作对应邀请进行协作会话中。
64.在协作端与服务端的交互过程中,以一个第二终端为例,多端远程协同通信的方
法流程如图4a所示,该流程主要包括以下几步:s401:第二终端响应于协作对象对协作会话分享链接的点击操作,向服务器发送第二连接请求。
65.第二终端接收第一终端发送的包含协作会话标识的协作会话分享链接后,协作对象通过点击该连接,跳转至协作会话操作界面,并向服务器发送第二连接请求。
66.如图4b所示,为分享对象点击协作会话分享链接后的跳转的用户界面示意图,协作对象通过点击图4b中的“立即加入”选项,向服务器发送第二连接请求。
67.s402:服务器基于第二连接请求,与第二终端建立websocket连接。
68.服务器接收到第二连接请求后,采用tcp协议与第二终端建立三次握手后,再基于http协议与第二终端进行一次握手,从而与第二终端建立websocket连接。
69.第二终端与服务器建立websocket连接后,等待分享对象的同意其加入协作会话后,进入对远程设备进行协同操作的用户界面,如图4c所示。
70.s403:第二终端向服务器发送协作会话标识。
71.第二终端与服务器建立websocket连接后,向服务器发送加入协作会话的数据帧,该数据帧带有协作会话分享链接中的协作会话标识。
72.例如,协同对象通过点击图4c中的“申请加入协同”选项,向服务器发送协作会话标识。
73.s404:服务器基于协作会话分享链接中的协作会话标识查询数据库。
74.服务器接收第二终端发送的协作会话标识后,查询数据库以确定是否存在相应的协作会话。
75.s405:当查询到链接中的协作会话标识存在于数据库中时,将第二终端接入到协作会话标识对应的协作会话中,以在第一终端和第二终端之间实现针对远程设备的协同操作。
76.当服务器在数据库中查询到第二终端发送的协作会话标识后,表明存在其对应的协作会话,此时,可将第二终端接入到该协作会话标识对应的协作会话中,从而实现第一终端和第二终端对远程设备的协同操作,若查不到,则结束。
77.当分享对象同意协作对象的加入申请后,将第二终端接入到协作会话,这样,协作对象进入到第一终端在远程设备上的实例页面,使得协作对象可以获得远程实例的操作情况,如图4d所示。
78.本技术的实施例中,第一终端接收到其与远程设备间的协作会话的协作会话标识后,基于该协作会话标识,生成一个协作会话分享链接,该链接可以被发送给协作会话队列中的至少一个第二终端,这样,第二终端的协作对象通过点击该链接便可接入到该协作会话中,无需输入分享对象的账号和密码,提高的远程协作登录的便捷性和安全,且通过与第一终端共用一个协作会话,实现针对远程设备的协同操作,提高了远程协作通信的效率。
79.在一种可选的实施例中,用于进行远程登录服务的服务器可以是单个服务器,如图5所示,为基于单个服务器实现的多端远程协同通信的系统架构图,即该服务器既能处理分享端的请求,又能处理协作端的请求。
80.具体的,分享对象通过操作第一终端发起协作会话请求(即第一连接请求中预设字段的取值表示本次会话连接为协作会话);服务器接收到协作会话请求后,与第一终端建
立websocket连接,并将分享对象输入的登录信息发送给远程设备,由远程设备对登录信息进行登录验证,当验证成功后,与服务器建立ssh连接,第一终端与远程设备间的协作会话创建完成,同时,服务器为该协作会话创建一个协作会话标识以及协作会话队列,并将协作会话标识存储到数据库中,以及,将该协作会话标识发送给第一终端。第一终端接收到协作会话标识后,基于该协作会话标识生成协作会话分享链接,并将该链接发送给第二终端。协作对象通过点击第二终端接收的协作会话分享链接,向服务器发送会话接入请求(即第二连接请求中携带协作会话标识);服务器基于会话接入请求,与第二终端建立websocket连接,并基于第二终端发送的协作会话标识查询数据库,若该协作会话标识存在于数据库中,则通过将第二终端的标识存入协作会话队列中,以将第二终端接入到该协作会话标识对应的协作会话中,从而在第一终端和至少一个第二终端之间实现针对远程设备的协同操作。
81.在一种示例中,针对单个服务器的情况,第一终端和至少一个第二终端对远程设备的协同操作过程如图6所示,主要包括以下几步:s406:目标终端向响应于目标对象的输入操作,向服务器发送操作指令,并由服务器将该操作指令转发给远程设备。
82.在一种示例中,目标对象通过目标终端提供的用户界面进行输入操作,目标终端在接收到输入完成指令后,向服务器发送携带目标对象输入内容的操作指令。由于该操作指令是针对分享对象在远程设备上的实例的,因此,服务器将该操作指令转发给远程设备进行处理。
83.由于第一终端已经建立了与远程设备的协作会话,且存在协作关系的至少一个第二终端也已经加入到该协作会话中,因此,对远程设备进行操作的目标终端,可以是第一终端,也可以是至少一个第二终端中的任一个。
84.s407:远程设备基于接收的操作指令对分享对象的实例进行处理。
85.可选的,分享对象在远程设备上的实例包括但不限于开发代码、文字、图片、视频等。
86.例如,当实例为开发代码时,操作指令为软件版本更新指令(包含版本号和更新代码等信息),则远程设备根据接收的操作指令更新分享对象的实例的版本。
87.s408:远程设备将对分享对象的实例的处理结果发送给服务器,并由服务器将操作指令中的操作信息和处理结果转发给目标终端以及其它终端。
88.由于第一终端和存在协作关系的至少一个第二终端共用一个协作会话,任何一个终端对远程设备的操作,应同步给该协作会话中的全部终端。具体的,远程设备将实例的处理结果发送给目标终端,同时,将操作指令中对实例的操作信息(包括但不限于当前操作对象的身份信息(如工号、姓名、账户名等)、当前操作对象输入的操作内容、目标终端的标识等)以及操作指令对应的处理结果发送给其它终端,以便其它终端对应的对象能够即时获得实例的操作情况。其中,其它终端可以是第一终端,也可以协作会话队列中的至少一个第二终端。
89.在协同操作过程中,通过操作信息和处理结果的转发,使得所有对象的操作指令都是实时同步共享,分享对象可管理每个协作对象的对其在远程设备上的实例的所有操作,提高了远程协同操作的安全性与便捷性。
90.在第一终端和至少一个第二终端对远程设备进行协同操作的过程中,考虑到是对
分享对象在远程设备上的实例的操作,为了保护分享对象在远程设备上的实例的安全性,所以,分享对象对应的第一终端默认有读写权限,协作对象对应的第二终端默认有只读权限,并且只有分享对象对应的第一终端可以决定是否把读写权限让与协作对象对应的第二终端。当协作对象需要对分享对象在远程设备上的实例进行操作时,需要向分享对象申请写权限,且获得分享对象的批准后,协作对象才可以对分享对象在远程设备上的实例进行操作。
91.具体实施时,在第一终端和第二终端对远程设备进行协同操作的过程中,当目标终端为第二终端时,其对远程设备进行操作前,写权限的申请过程如图7a所示,主要包括以下几步:s4051:第二终端向服务器发送写权限申请请求,并由服务器转发给第一终端。
92.其中,写权限申请请求包含第二终端的标识和协作对象的身份信息中的至少一项,以表明写权限的申请对象。可选的,协作对象的身份信息包括但不限于协作对象的工号、姓名、账号名称等。
93.如图7b所示,第二终端接入到第一终端与远程设备间的协作会话后,可以看到其它终端(可以是第一终端,也可以是其它第二终端)在远程设备上的操作,当协作对象需要进行协同操作时,可以通过点击“申请编辑”选项向服务器发送写权限申请请求,以请求分享对象批准其对远程设备上的实例进行协同操作。
94.s4052:第一终端基于写权限申请请求,向服务器发送授予第二终端写权限的确认信息。
95.第一终端接收到服务器转发的写权限申请请求后,将写权限申请对象的身份展示给分享对象,由分享对象确认写权限申请对象的是否安全,当写权限申请对象为与其存在协作关系的协作对象时,向服务器发送授予第二终端写权限的确认信息。
96.s4053:服务器收回第一终端的写权限,并将写权限设置给第二终端。
97.服务器接收到第一终端发送的确认信息后,收回第一终端读写权限中的写权限,并将写权限设置给第二终端,此时,第一终端具有只读权限,第二终端具有读写权限,从而实现接入协作会话的第二终端能够对远程设备上分享对象的实例的进行操作,并能将该操作同步给第一终端。
98.在一种示例中,服务器将写权限设置给第二终端后,但协作对象对分享对象在远程设备上的实例操作完成后,分享对象可以收回写权限。具体的,第二终端基于协作对象的操作向服务器发送操作完成指令,服务器接收到操作完成指令后,收回第二终端的写权限,并将写权限恢复给第一终端,此时,第二终端具有只读权限,第一终端具有读写权限。
99.在一种示例中,为保证远程实例的安全性,在第一终端和至少一个第二终端对远程设备进行协同操作的过程中,分享对象对应的第一终端可以随时拿回写权限。具体的,服务器将写权限设置给第二终端后,第一终端向服务器发送写权限申请请求,服务器接收到该写权限申请请求后,将写权限归还给第一终端,并恢复第二终端的只读权限。
100.如图7c所示,为分享对象对应的权限管理页面,在该页面中,分享对象可以将读写权限中的写权限转移给协作对象,也可以收回协作对象的写权限。
101.本技术的实施例中,在第一终端和至少一个第二终端对远程设备进行协同操作的过程中,只有分享对象可以决定写权限的归属以及随时收回写权限,因此,在协同通信时,
可以保证其在远程设备上的实例的安全性。
102.在一种示例中,在第一终端和第二终端对远程设备进行协同操作的过程中,由于分享对象为远程设备上被操作实例的所有者,且其对应的第一终端默认具有读写权限,因此,当目标终端为第一终端时,无需进行写权限申请便可直接将远程操作结果同步给协作会话队列中的至少一个第二终端。
103.在一种可选的实施例中,用于进行远程登录服务的服务器可以是多个服务器组成的分布式集群,包含一个控制节点和多个服务节点,每个节点为一个服务器,其中,控制节点用于负载均衡,服务节点用于处理终端的请求,如图8所示,为基于分布式集群实现的多端远程协同通信的系统架构图。由于分布式集群一般采用多地域、可用分区的方式进行部署,这样,分享端和协作端的远程操作大概率会落在不同的服务器节点上,从而实现负载均衡。因此,如何处理多端远程协同操作是分布式系统的关键技术。
104.具体的,分享对象通过操作第一终端发起协作会话请求(即第一连接请求中预设字段的取值表示本次会话连接为协作会话);控制节点接收到该协作会话请求后进行负载均衡,从各服务节点中选择一个处理第一终端请求的服务节点(记为第一服务节点),并记录第一服务节点的内网ip存到数据库中。第一服务节点基于第一终端发送的协作会话请求,与第一终端建立websocket连接,并将分享对象输入的登录信息发送给远程设备,由远程设备对登录信息进行登录验证,当验证成功后,远程设备与第一服务节点建立ssh连接,第一终端与远程设备间的协作会话创建完成,同时,第一服务节点为该协作会话创建一个协作会话标识以及协作会话队列,并将协作会话标识存储到数据库中,以及,将该协作会话标识发送给第一终端。第一终端接收到协作会话标识后,基于该协作会话标识生成协作会话分享链接,并将该链接发送给第二终端。协作对象通过点击第二终端接收的协作会话分享链接发起会话接入请求(即第二连接请求中携带协作会话标识);控制节点通过负载均衡,从各服务节点中选择一个处理第二终端请求的服务节点(记为第二服务节点),第二服务节点与第二终端建立websocket连接。第二服务节点基于协作会话标识,从数据库中获取第一服务节点的内网ip,并结合自身的内网ip,与第一服务节点建立websocket连接,并基于第二终端发送的协作会话标识查询数据库,若该协作会话标识存在于数据库中,则通过将第二终端的标识存入协作会话队列中,以将第二终端接入到该协作会话标识对应的协作会话中,从而在第一终端和至少一个第二终端之间实现针对远程设备的协同操作。
105.在一种示例中,针对分布式集群的情况,第一终端和至少一个第二终端对远程设备的协同操作过程如图9所示,主要包括以下几步:s901:第一终端响应于分享对象针对远程设备发送的远程登录操作,向分布式集群发送第一连接请求。
106.在一种示例中,分享对象通过开启第一终端上的远程登录程序进行远程登录操作,向分布式集群发送第一连接请求。其中,该第一连接请求的预设字段会标识本次登录会话类型是否为协作会话。
107.由于本技术是针对多端远程协作通信的场景,因此,后续实施例针对开启协作会话的情况进行描述。
108.s902:控制节点基于各服务节点间的负载情况,从各服务节点中选择一个处理第一终端和远程设备间的协作会话的第一服务节点。
109.为了提高分布式集群的可用性和性能,通过负载均衡可以将网络流量分散到多个服务器上,因此,分布式集群接收到请求后,从各服务节点中选择负载最小的一个服务节点处理第一终端和远程设备间的协作会话。
110.s903:第一服务节点基于第一连接请求,与第一终端建立websocket连接。
111.第一服务节点接收到第一连接请求后,采用tcp协议与第一终端建立三次握手后,再基于http协议与第一终端进行一次握手,从而与第一终端建立websocket连接。
112.s904:第一终端向第一服务节点发送用于登录远程设备的登陆信息。
113.websocket 连接建立成功后,第一终端采用ssh协议,将分析对象输入的用于登录远程设备的登陆信息封装成数据帧发送给第一服务节点。可选的,登录信息包括但不限于账号、密码、登录会话类型、密钥、远程设备的ip地址、远程设备的端口号等。
114.s905:第一服务节点将登陆信息发送至远程设备进行登陆验证。
115.第一服务节点接收到登陆信息后,向远程设备发送远程登陆请求,并将第一终端发送的登录信息发送给远程设备,由远程设备对第一终端的登录信息进行登录验证。
116.s906:当登陆成功后,第一服务节点接收远程设备发送的验证成功通知,第一终端与远程设备间的协作会话建立完成。
117.当登录信息验证成功后,表示第一终端成功登录到远程设备,并向第一服务节点发送第一终端登录成功的通知,第一终端与远程设备间的协作会话建立完成。
118.s907:第一服务节点为第一终端与远程设备间的协作会话创建一个协作会话标识以及一个用于存储与第一终端存在协作关系的至少一个第二终端的标识的协作会话队列,并将协作会话标识和自身的内网ip存储到数据库中。
119.第一终端与远程设备间的协作会话建立完成后,第一服务节点为该协作会话建立唯一的协作会话标识以及一个协作会话队列,该协作会话队列用于存储与第一终端存在协作关系的至少一个第二终端,并将协作会话标识和自身的内网ip地址存储到数据库中。
120.s908:第一服务节点将协作会话标识发送给第一终端。
121.s909:第一终端基于协作会话标识协作会话分享链接,并将该链接发送给协作会话队列中的至少一个第二终端。
122.s910:第二终端响应于协作对象对协作会话分享链接的点击操作,向分布式集群发送第二连接请求。
123.第二终端接收第一终端发送的包含协作会话标识的协作会话分享链接后,协作对象通过点击该连接,向与分布式集群发送第二连接请求,并跳转至协作会话操作界面。其中,第二连接请求携带第二终端的标识。
124.s911:控制节点基于各服务节点间的负载情况,从各服务节点中选择一个处理第二终端接入第一终端和远程设备间的协作会话的第二服务节点。
125.由于第一服务节点用于处理第一终端和远程设备间的协作会话,为保持负载均衡,控制节点还需要从各服务节点中再选择一个处理第二终端接入第一终端和远程设备间的协作会话的第二服务节点。
126.s912:第二服务节点基于第二连接请求,与第二终端建立websocket连接。
127.第二服务节点接收到第二连接请求后,采用tcp协议与第二终端建立三次握手后,再基于http协议与第二终端进行一次握手,从而与第二终端建立websocket连接。
128.s913:第二终端向第二服务节点发送协作会话标识。
129.第二终端与服务器建立websocket连接后,向第二服务节点发送加入协作会话的数据帧,该数据帧带有协作会话分享链接中的协作会话标识。
130.s914:第二服务节点基于协作会话标识查询数据库,当查询到时,从数据库获取协作会话标识对应的第一服务节点的内网ip,并基于自身的内网ip和第一服务节点的内网ip,与第一服务节点建立websocket连接。
131.其中,第二服务节点与第一服务节点共享同一数据库,第二服务节点通过与第一服务节点建立websocket连接,从而将第二终端发送的请求转给第一服务节点统一进行托管。
132.s915:第二服务节点将第二终端的标识发送给第一服务节点。
133.第二服务节点与第一服务节点建立websocket连接后,将第二终端的标识发送给第一服务节点。
134.s916:第一服务节点基于第二终端的标识,将第二终端接入到协作会话标识对应的协作会话中,以在第一终端和第二终端之间实现针对远程设备的协同操作。
135.第一服务节点通过将第二终端的标识加入到协作会话队列中,从而实现第一终端和第二终端对远程设备的协同操作。
136.本技术的实施例中,基于多地域、多可用分区的分布式集群来实现多端的远程登陆会话服务,从而将不同对象的终端发起的请求大概率就会被分发到集群中的不同服务器上,相对于基于单个服务器实现的多端远程协作通信,容灾性更强。另一方面,在分布式集群中,通过负载均衡,由第一服务节点和第二服务节点分别对第一终端和第二终端发送的请求进行处理,提高了会话处理的效率,以及,在协作通信过程中,第一终端与至少一个第二终端共用一个协作会话,分享对象无需将自己的账号和密码发送给协作对象,且第一服务节点和第二服务节点基于各自的内网ip建立websocket连接,这样,第二服务节点可将第二终端对远程设备的操作,转发给第一服务节点进行处理,从而实现第一终端和至少一个第二终端对远程设备的协同操作,提高了远程协作通信的安全性和效率。
137.在第一终端与至少一个第二终端对远程设备进行协同操作的过程中,第一终端可以对远程设备上的实例进行操作,第二终端也可以对远程设备上的实例进行操作,且操作信息和处理结果会同步给协作会话中的各个终端。其中,由于分享对象为实例的所有者,其可直接对实例进行协同操作,而为保护实例操作的安全性,当协作对象需要对分享对象在远程设备上的实例进行操作时,需要向分享对象申请写权限,且获得分享对象的批准后,协作对象才可以对分享对象在远程设备上的实例进行操作。
138.在一种示例中,针对分布式集群的情况,在第一终端和第二终端对远程设备进行协同操作的过程中,第一终端对远程设备的协同操作过程如图10所示,主要包括以下几步:s1001:第一终端向第一服务节点发送对远程设备进行操作的第一操作指令,并由第一服务节点将第一操作指令转发给远程设备。
139.其中,第一操作指令包含的第一操作信息包括但不限于分享对象的身份信息以及分享对象输入的第一操作内容。可选的,分享对象的身份信息包括但不限分享对象的工号、姓名和账户名称等。
140.s1002:远程设备基于第一操作指令,对分享对象的实例进行处理,获得第一处理
结果。
141.s1003:远程设备将第一操作信息和第一处理结果发送给第一服务节点。
142.由于第一服务节点与第一终端和第二服务节点分别建立了websocket连接,因此,可以通过第一服务节点转发远程设备的操作结果。
143.s1004~1005:第一服务节点将第一操作信息和第一处理结果均发送给第一终端和第二服务节点,由第二服务节点将第一处理结果和第一操作信息转送给协作会话对队列中的至少一个第二终端。
144.通过将远程设备上实例的第一操作信息及第一处理结果发送给第一终端和至少一个第二终端,由第一终端和至少一个第二终端分别展示给分享对象和协作对象,从而在第一终端和至少一个第二终端共用一个协作会话的情况下,实现对远程设备的协同操作。
145.在一种示例中,针对分布式集群的情况,在第一终端和第二终端对远程设备进行协同操作的过程中,第二终端对远程设备进行协同操作时,需要获得分享对象的同意,具体协同过程如图11所示,主要包括以下几步:s1101:第二终端向第二服务节点发送写权限申请请求,并由第二服务节点将写权限申请请求发送给第一服务节点。
146.为保证分享对象在远程设备上实例的安全性,加入协作会话的第二终端具有只读权限。当协作对象需要对远程设备上的实例进行操作时,第二终端需要向分享对象申请写权限,获得分享对象的同意后才可以进行远程操作。由于第二服务节点负责处理第二终端的请求,且与第一服务节点建立了websocket连接,因此,当其接收到第二终端发送的写权限申请请求后,通过websocket连接,将该请求转发给第一服务节点进行处理。
147.可选的,第二终端发送的写权限申请请求至少包含协作对象的身份信息(如工号、姓名、账户名等)、第二终端的标识。
148.s1102:第一服务节点将第二终端的写权限申请请求发送给第一终端,由第一终端展示给分享对象。
149.第一服务节点通过与第一终端间的websocket连接,将第二终端的写权限申请请求发送给第一终端,第一终端通过用户界面展示给分享对象,以便分享对象对第二终端对应的协作对象的身份进行验证。
150.s1103:第一终端响应于分享对象的同意操作,向第一服务节点发送确认信息。
151.当分析对象确定申请写权限的协作对象与其存在协作关系时,触发同意其获得写权限的操作,第一终端基于分享对象的操作,向第一服务器发送同意第二终端获得写权限的确认信息。可选的,该确认信息携带第二终端的标识。
152.s1104~s1105:第一服务节点基于确认信息收回第一终端的写权限,并将确认信息转发给第二服务节点。
153.由于远程设备上仅有一个输入光标,如果多人同时输入会导致操作混乱,因此,当分享对象同意获得协作对象在远程设备上进行操作时,第一服务节点将收回第一终端的写权限,从而保证协同操作过程中同一时刻仅有一人远程操作。
154.s1106:第二服务节点基于确认信息,为第二终端设置写权限。
155.第二服务节点接收到确认信息后,将写权限设置给第二终端,使得协作对象能够通过第二终端在远程设备上操作。
156.s1107:第二终端向第二服务节点发送的对远程设备进行操作的第二操作指令,并由第二服务节点将第二操作指令通过第一服务节点转发给远程设备。
157.第二终端获得写权限后,向第二服务节点发送对远程设备进行操作的第二操作指令。
158.可选的,第二操作指令包含的第二操作信息至少包含协作对象的身份信息(如协作对象的工号、姓名、账户名等)以及协作对象输入的第二操作内容等。
159.第二服务节点接收到第二操作指令后,将第二操作指令发送给第一服务节点,由第一服务节点转发给远程设备进行处理。
160.s1108:远程设备基于第二操作指令对分享对象的实例进行操作,获得第二处理结果。
161.远程设备根据协作对象输入的第二操作内容,对分享对象在远程设备上的实例进行处理,获得第二处理结果。
162.s1109:远程设备将第二操作指令对应的第二操作信息和第二处理结果发送给第一服务节点。
163.由于第一服务节点分别与第一终端和第二服务节点建立了websocket连接,因此,通过第一服务节点,可以将远程设备上行的第二操作信息和第二处理结果同步给第一终端和至少一个第二终端。
164.s1110:第一服务节点将第二操作信息和第二处理结果均发送给第一终端和第二服务节点,由第二服务节点将第二处理结果和第二操作信息转送给协作会话对队列中的至少一个第二终端。
165.通过将远程设备上实例的第二操作信息及第二处理结果发送给第一终端和至少一个第二终端,由第一终端和至少一个第二终端分别展示给分享对象和协作对象,从而在第一终端和至少一个第二终端共用一个协作会话的情况下,实现对远程设备的协同操作。
166.在协同操作过程中,通过操作信息和处理结果的转发,使得所有对象的操作指令都是实时同步共享,分享对象可管理每个协作对象的对其在远程设备上的实例的所有操作,提高了远程协同操作的安全性与便捷性。
167.在一种示例中,第二终端获得写权限后,协作对应可以主动归还写权限。具体的,第二终端基于协作对象的操作向第二服务节点发送操作完成指令,第二服务节点接收到操作完成指令后,收回第二终端的写权限,此时,第二终端恢复只读权限,并将该操作完成指令发送给第一服务节点,第一服务节点收到该操作完成指令后,将写权限恢复给第一终端,此时,第一终端具有读写权限。
168.在一种示例中,为保证远程实例的安全性,分享对象还可以主动收回写权限。具体的,第二终端获得写权限后,第一终端向第一服务节点发送写权限申请请求,第一服务节点接收到该写权限申请请求后,将写权限归还给第一终端,此时,第一终端具有读写权限,并基于该写权限申请请求向第二服务节点发送通知消息,以使第二服务节点恢复第二终端的只读权限。
169.本技术的实施例中,在第一终端和至少一个第二终端对远程设备进行协同操作的过程中,只有分享对象可以决定写权限的归属以及随时收回写权限,因此,在协同通信时,可以保证其在远程设备上的实例的安全性。
170.在第一终端和至少一个第二终端对远程设备进行协同操作的过程中,还可以从全局或局部结束协同操作。
171.在一种可选的实施方式中,当分享对象关闭远程设备上的实例或取消分享状态时,第一终端向服务器(可以是单个服务器还是分布式集群中的第一服务节点)发送结束协作指令。服务器接收到结束协作指令后,关闭与第二终端的连接以停止至少一个第二终端对远程设备的协同操作。
172.在另一种可选的实施方式中,第一终端基于分享对象的移除操作,向服务器(可以是单个服务器还是分布式集群中的第一服务节点)发送移除指令,可选的,移除指令携带一个或多个协作对应的身份信息、第二终端的标识等。服务器将移除指令所指示的第二终端移出协作会话,被移出的第二终端对应的协作对象无法参与协同操作。
173.在一种示例中,服务器(可以是单个服务器还是分布式集群中的第一服务节点)对协作会话进行管理,当在预设时长内未接收到第一终端和至少一个第二终端的输入操作时,关闭协作会话。
174.基于相同的技术构思,本技术实施例提供了一种远程协同通信装置的结构示意图,该装置能够实现上述服务器侧的多端远程协同通信方法,且能达到相同的技术效果。
175.参见图12,该远程协同通信装置包括接收模块1201、发送模块1202和处理模块1203,其中:接收模块1201,用于接收第一终端发送的用于登录远程设备的登录信息;发送模块1202,用于将登录信息发送至远程设备进行登录验证;处理模块1203,用于当基于远程设备的验证通知确定登录成功时,为第一终端与远程设备间的协作会话创建一个协作会话标识并存储,以及创建一个协作会话队列,协作会话队列用于存储与第一终端存在协作关系的至少一个第二终端的标识;发送模块1202,还用于将协作会话标识发送给第一终端,以使第一终端将协作会话标识携带在协作会话分享链接中,发送至协作会话队列中的至少一个第二终端;接收模块1201,还用于在接收模块1201接收到至少一个第二终端基于协作会话分享链接发送的协作会话标识时,在第一终端和至少一个第二终端之间实现针对远程设备的协同操作。
176.可选的,接收模块1201具体用于:针对每个第二终端,接收第二终端基于协作会话分享链接发送的协作会话标识;处理模块1203具体用于:当查询到协作会话标识存在于数据库中时,将第二终端接入到协作会话标识对应的协作会话中,以在第一终端和第二终端之间实现针对远程设备的协同操作。
177.可选的,发送模块1202具体用于:将目标终端发送的对远程设备进行操作的操作指令,发送给远程设备,目标终端为第一终端和至少一个第二终端中的任意一个;接收模块1201具体用于:接收远程设备基于操作指令返回的处理结果;发送模块1202具体用于:将操作指令中的操作信息和处理结果转发给第一终端以及协作会话队列中的至少一个第二终端。
178.可选的,第一终端具有读写权限,第二终端具有只读权限;接收模块1201还用于:接收第二终端发送的写权限申请请求,并将写权限申请请
求转发给第一终端;以及,接收第一终端对写权限申请请求返回的确认信息,收回第一终端读写权限中的写权限,并将写权限设置给第二终端。
179.可选的,接收模块1201还用于:接收第二终端发送的操作完成指令,收回第二终端的写权限,并将写权限恢复给第一终端;或者,接收第一终端发送的写权限申请请求,将写权限归还给第一终端,并恢复第二终端的只读权限。
180.可选的,多端远程协同通信装置至少包含一个控制节点和多个服务节点;控制节点,用于基于各服务节点间的负载情况,从各服务节点中选择一个处理第一终端和远程设备间的协作会话的第一服务节点;第一服务节点,用于将自身的内网ip与协作会话标识关联,并存储到数据库中。
181.可选的,控制节点还用于:基于各服务节点间的负载情况,从各服务节点中选择一个处理第二终端接入第一终端和远程设备间的协作会话的第二服务节点;第二服务节点还用于:从数据库获取协作会话标识对应的第一服务节点的内网ip,并基于自身的内网ip和第一服务节点的内网ip,与第一服务节点建立通信连接,第一服务节点为分布式集群中用于处理第一终端和远程设备间的协作会话的一个服务器。
182.可选的,当第一终端请求对远程设备进行操作时,第一服务节点具体用于:接收第一终端发送的对远程设备进行操作的第一操作指令;接收远程设备基于第一操作指令返回的第一处理结果和第一操作信息,并将第一处理结果和第一操作信息分别发送给第一终端和第二服务节点,以使第二服务节点将第一操作信息和第一处理结果转发给协作会话队列中的至少一个第二终端。
183.可选的,当第二终端请求对远程设备进行操作时,第二服务节点具体用于:接收第二终端发送的对远程设备进行操作的第二操作指令,并将第二操作指令通过第一服务节点转发给远程设备;接收第一服务节点转发的远程设备基于第二操作指令返回的第二处理结果;将第二操作指令对应的第二操作信息和第二处理结果发送给协作会话队列中的至少一个第二终端,同时,第二操作信息和第二处理结果经第一服务节点发送给第一终端。
184.可选的,第一终端具有读写权限,第二终端具有只读权限;第二服务节点还用于:接收第二终端发送的写权限申请请求,并将写权限申请请求发送给第一服务节点,以使第一服务节点将写权限申请请求转发给第一终端;接收第一服务节点转发的第一终端对写权限申请请求返回的确认信息,为第二终端设置写权限,其中,确认信息用于指示第一服务节点收回第一终端读写权限中的写权限。
185.可选的,第二服务节点还用于:接收第二终端发送的操作完成指令,收回第二终端的写权限,并将操作完成指令转发给第一服务节点以使第一服务节点将写权限恢复给第一终端;或者,第一服务节点还用于:接收第一终端发送的写权限申请请求,将写权限归还给第一终端,并基于写权限申请请求向第二服务节点发送消息以使第二服务节点恢复第二终端的只读权限。
186.可选的,接收模块还用于接收第一终端发送结束协作指令;或者,接收第一终端发
送的移除指令;处理模块还用于基于结束协作指令停止至少一个第二终端针对远程设备的协同操作;或者,将移除指令所指示的第二终端移出协作会话;或者,在预设时长内未接收到第一终端和至少一个第二终端的输入操作,关闭协作会话。
187.基于相同的技术构思,本技术实施例提供了另一种远程协同通信装置的结构示意图,该装置能够实现上述第一终端侧的多端远程协同通信方法,且能达到相同的技术效果。
188.参见图13,该远程协同通信装置包括发送模块1301和接收模块1302,其中:发送模块1301,用于向服务器发送用于登录远程设备的登录信息,以使所述服务器将所述登录信息发送至所述远程设备进行登陆验证;接收模块1301,用于接收所述服务器发送的一个协作会话标识,所述协作会话标识是所述服务器基于所述远程设备的通知确定远程登陆成功时创建的;发送模块1301,还用于将所述协作会话标识携带在协作会话分享链接中,发送至协作会话队列中的至少一个第二终端,以使所述服务器在接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,与所述至少一个第二终端实现针对所述远程设备的协同操作;其中,所述协作会话队列用于存储与协作会话发起端存在协作关系的至少一个第二终端的标识。
189.可选的,发送模块1301具体用于:向服务器发送对远程设备进行操作的第一操作指令,以使服务器将第一操作指令转发给远程设备;接收模块1302具体用于:接收服务器转发的远程设备返回的第一操作指令对应的第一操作信息和第一处理结果,第一操作信息和第一处理结果被转发给协作会话队列中的至少一个第二终端。
190.可选的,远程协同通信装置具有读写权限,第二终端具有只读权限;接收模块1302具体用于:接收服务器转发的第二终端发送的写权限申请请求;发送模块1301具体用于:向服务器发送对写权限请求的确认信息,以使服务器根据确认信息收回远程协同通信装置读写权限中的写权限,并将写权限设置给第二终端;接收模块1302具体用于:接收服务器转发的远程设备返回的第二操作指令对应的第二操作信息和第二处理结果,第二操作指令是第二终端发送的,经服务器转发给远程设备,第二操作信息和第二处理结果被转发给协作会话队列中的至少一个第二终端。
191.可选的,发送模块1301还用于向服务器发送写权限申请请求,以使服务器将写权限归还给远程协同通信装置,并恢复第二终端的只读权限。
192.基于相同的技术构思,本技术实施例提供了另一种远程协同通信装置的结构示意图,该装置能够实现上述第二终端侧的多端远程协同通信方法,且能达到相同的技术效果。
193.参见图14,该远程协同通信装置包括接收模块1401和发送模块1402,其中:接收模块1401,用于接收第一终端发送的协作会话分享链接,协作会话分享链接携带协作会话标识,协作会话标识是服务器将第一终端发送的用于登陆远程设备的登陆信息发送至远程设备进行登录验证后,确定第一终端登录成功时创建的;发送模块1402,用于基于所述协作会话分享链接向所述服务器发送所述协作会话标识,并在所述协作会话标识为所述第一终端与所述远程设备间的协作会话的标识时,被加入到所述服务器创建的用于存储与所述第一终端存在协作关系的协作会话队列中,实现
与所述第一终端针对所述远程设备的系统操作。
194.可选的,接收模块1401具体用于:接收服务器发送的第一操作指令对应的第一操作信息和第一处理结果,第一操作指令是第一终端发送给远程设备的,第一处理结果是远程设备基于第一操作信息返回的,第一操作信息和第一处理结果被转发给第一终端以及协作会话队列中的其它远程协同通信装置。
195.可选的,第一终端具有读写权限,远程协同通信装置具有只读权限;发送模块1402具体用于:向服务器发送写权限申请请求,以使服务器将写权限申请请求转发给第一终端;当服务器接收到第一终端对写权限请求返回的确认信息后,启用写权限,第一终端读写权限中的写权限被回收;发送模块1402具体用于:向服务器发送第二操作指令,以使服务器将第二操作指令转发给远程设备;接收模块1401具体用于:接收服务器发送的第二操作指令对应的第二操作信息和第二处理结果,第二处理结果是远程设备基于第二操作信息获得的,第二处理结果和第二操作信息被发送给第一终端,以及协作会话队列中的其它远程协同通信装置。
196.可选的,发送模块1402还用于:向服务器发送操作完成指令,以使服务器基于操作完成指令将写权限归还给第一终端,并恢复远程协同通信装置的只读权限。
197.与上述方法实施例基于同一发明构思,本技术实施例中还提供了一种电子设备。在一种实施例中,该电子设备可以是单个服务器,还可以是包含多个服务器的分布式集群,也可以是终端设备。在该实施例中,电子设备的结构可以如图15所示,包括存储器1501,通讯模块1503以及一个或多个处理器1502。
198.存储器1501,用于存储处理器1502执行的计算机程序。存储器1501可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统和操作指令集等。
199.存储器1501可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器1501也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者存储器1501是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器1501可以是上述存储器的组合。
200.处理器1502,可以包括一个或多个中央处理单元(central processing unit, cpu)或者为数字处理单元等等。处理器1502,用于调用存储器1501中存储的计算机程序时实现上述多端远程协同通信方法。
201.通讯模块1503用于与终端设备和其他服务器进行通信。
202.本技术实施例中不限定上述存储器1501、通讯模块1503和处理器1502之间的具体连接介质。本技术实施例在图15中以存储器1501和处理器1502之间通过总线1504连接,总线1504在图15中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1504可以分为地址总线、数据总线、控制总线等。为便于描述,图15中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
203.存储器1501中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本技术实施例的多端远程协同通信方法。处理器1502用于
执行上述多端远程协同通信方法的步骤。
204.在一些可能的实施方式中,本技术提供的数据分类方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本技术各种示例性实施方式的多端远程协同通信方法中的步骤。
205.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器、只读存储器、可擦式可编程只读存储器、光纤、便携式紧凑盘只读存储器、光存储器件、磁存储器件、或者上述的任意合适的组合。
206.本技术的实施方式的程序产品可以采用便携式紧凑盘只读存储器并包括计算机程序,并可以在电子设备上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
207.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
208.可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
209.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的计算机程序,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。计算机程序可以完全地在用户计算装置上执行、部分地在用户计算装置上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网或广域网连接到用户计算装置,或者,可以连接到外部计算装置。
210.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
211.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。

技术特征:
1.一种多端远程协同通信方法,其特征在于,应用于服务器,包括:接收第一终端发送的用于登录远程设备的登录信息;将所述登录信息发送至所述远程设备进行登录验证;当基于所述远程设备的验证通知确定登录成功时,为所述第一终端与所述远程设备间的协作会话创建一个协作会话标识并存储,以及创建一个协作会话队列,所述协作会话队列用于存储与所述第一终端存在协作关系的至少一个第二终端的标识;将所述协作会话标识发送给所述第一终端,以使所述第一终端将所述协作会话标识携带在协作会话分享链接中,发送至所述协作会话队列中的至少一个第二终端,以及,在接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,在所述第一终端和所述至少一个第二终端之间实现针对所述远程设备的协同操作。2.如权利要求1所述的方法,其特征在于,所述在接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,在所述第一终端和所述至少一个第二终端之间实现针对所述远程设备的协同操作,包括:针对每个第二终端,执行以下操作:接收所述第二终端基于所述协作会话分享链接发送的协作会话标识;当查询到所述协作会话标识存在于数据库中时,将所述第二终端接入到所述协作会话标识对应的协作会话中,以在所述第一终端和所述第二终端之间实现针对所述远程设备的协同操作。3.如权利要求2所述的方法,其特征在于,当所述服务器为单个服务器时,所述将所述第二终端接入到所述协作会话标识对应的协作会话中,以在所述第一终端和所述第二终端之间实现针对所述远程设备的协同操作,包括:将目标终端发送的对所述远程设备进行操作的操作指令,发送给所述远程设备,所述目标终端为所述第一终端和所述至少一个第二终端中的任意一个;接收所述远程设备基于所述操作指令返回的处理结果,并将所述操作指令中的操作信息和所述处理结果转发给所述第一终端以及所述协作会话队列中的至少一个第二终端。4.如权利要求3所述的方法,其特征在于,所述第一终端具有读写权限,所述第二终端具有只读权限;当所述目标终端为所述第二终端时,将目标终端发送的对所述远程设备进行操作的操作指令发送给所述远程设备前,所述方法还包括:接收所述第二终端发送的写权限申请请求,并将所述写权限申请请求转发给所述第一终端;接收所述第一终端对所述写权限申请请求返回的确认信息,收回所述第一终端读写权限中的写权限,并将所述写权限设置给所述第二终端。5.如权利要求4所述的方法,其特征在于,将所述写权限设置给所述第二终端后,所述方法还包括:接收所述第二终端发送的操作完成指令,收回所述第二终端的写权限,并将所述写权限恢复给所述第一终端;或者接收所述第一终端发送的写权限申请请求,将所述写权限归还给所述第一终端,并恢复所述第二终端的只读权限。
6.如权利要求2所述的方法,其特征在于,所述服务器为分布式集群,至少包含一个控制节点和多个服务节点,在接收第一终端发送的用于登录远程设备的登录信息后,所述方法还包括:所述控制节点基于各服务节点间的负载情况,从所述各服务节点中选择一个处理所述第一终端和所述远程设备间的协作会话的第一服务节点;所述第一服务节点将自身的内网ip与所述协作会话标识关联,并存储到所述数据库中。7.如权利要求6所述的方法,其特征在于,在接收所述第二终端基于所述协作会话分享链接发送的协作会话标识后,所述方法还包括:所述控制节点基于各服务节点间的负载情况,从所述各服务节点中选择一个处理所述第二终端接入所述第一终端和所述远程设备间的协作会话的第二服务节点;所述第二服务节点从所述数据库获取所述协作会话标识对应的第一服务节点的内网ip,并基于自身的内网ip和所述第一服务节点的内网ip,与所述第一服务节点建立通信连接,所述第一服务节点为所述分布式集群中用于处理所述第一终端和所述远程设备间的协作会话的一个服务器。8.如权利要求7所述的方法,其特征在于,当所述第一终端请求对所述远程设备进行操作时,所述将所述第二终端接入到所述协作会话标识对应的协作会话中,以在所述第一终端和所述第二终端之间实现针对所述远程设备的协同操作,包括:所述第一服务节点接收所述第一终端发送的对所述远程设备进行操作的第一操作指令;所述第一服务节点接收所述远程设备基于所述第一操作指令返回的第一处理结果和第一操作信息,并将所述第一处理结果和所述第一操作信息分别发送给所述第一终端和所述第二服务节点,以使所述第二服务节点将所述第一操作信息和所述第一处理结果转发给所述协作会话队列中的至少一个第二终端。9.如权利要求7所述的方法,其特征在于,当所述第二终端请求对所述远程设备进行操作时,所述将所述第二终端接入到所述协作会话标识对应的协作会话中,以在所述第一终端和所述第二终端之间实现针对所述远程设备的协同操作,包括:所述第二服务节点接收所述第二终端发送的对所述远程设备进行操作的第二操作指令,并将所述第二操作指令通过所述第一服务节点转发给所述远程设备;所述第二服务节点接收所述第一服务节点转发的所述远程设备基于所述第二操作指令返回的第二处理结果;所述第二服务节点将所述第二操作指令对应的第二操作信息和第二处理结果发送给所述协作会话队列中的至少一个第二终端,同时,所述第二操作信息和所述第二处理结果经所述第一服务节点发送给所述第一终端。10.如权利要求9所述的方法,其特征在于,所述第一终端具有读写权限,所述第二终端具有只读权限;将所述第二操作指令转发给所述第一服务节点以使所述第一服务节点将所述第二操作指令发送给所述远程设备前,所述方法还包括:所述第二服务节点接收所述第二终端发送的写权限申请请求,并将所述写权限申请请
求发送给所述第一服务节点,以使所述第一服务节点将所述写权限申请请求转发给所述第一终端;所述第二服务节点接收所述第一服务节点转发的所述第一终端对所述写权限申请请求返回的确认信息,为所述第二终端设置写权限,其中,所述确认信息用于指示所述第一服务节点收回所述第一终端读写权限中的写权限。11.如权利要求10所述的方法,其特征在于,为所述第二终端设置写权限后,所述方法还包括:所述第二服务节点接收所述第二终端发送的操作完成指令,收回所述第二终端的写权限,并将所述操作完成指令转发给所述第一服务节点以使所述第一服务节点将所述写权限恢复给所述第一终端;或者所述第一服务节点接收所述第一终端发送的写权限申请请求,将所述写权限归还给所述第一终端,并基于所述写权限申请请求向所述第二服务节点发送消息以使所述第二服务节点恢复所述第二终端的只读权限。12.如权利要求1-11中任一项所述的方法,其特征在于,在所述第一终端和所述至少一个第二终端之间实现针对所述远程设备的协同操作后,通过以下任意操作结束针对所述远程设备的协同操作:接收所述第一终端发送结束协作指令,基于所述结束协作指令停止所述至少一个第二终端针对所述远程设备的协同操作;或者,接收所述第一终端发送的移除指令,将所述移除指令所指示的第二终端移出所述协作会话;在预设时长内未接收到所述第一终端和所述至少一个第二终端的输入操作,关闭所述协作会话。13.如权利要求1-11中任一项所述的方法,其特征在于,所述登录信息至少包括登录账号、密码、密钥、远程设备的ip地址、远程设备的端口号。14.一种多端远程协同通信方法,其特征在于,应用于第一终端,包括:向服务器发送用于登录远程设备的登录信息,以使所述服务器将所述登录信息发送至所述远程设备进行登陆验证;接收所述服务器发送的一个协作会话标识,所述协作会话标识是所述服务器基于所述远程设备的通知确定所述第一终端登陆成功时创建的;将所述协作会话标识携带在协作会话分享链接中,发送至协作会话队列中的至少一个第二终端,以使所述服务器在接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,在所述第一终端和所述至少一个第二终端之间实现针对所述远程设备的协同操作;其中,所述协作会话队列用于存储与所述第一终端存在协作关系的所述至少一个第二终端的标识。15.一种多端远程协同通信方法,其特征在于,应用于第二终端,包括:接收第一终端发送的协作会话分享链接,所述协作会话分享链接携带协作会话标识,所述协作会话标识是服务器将所述第一终端发送的用于登陆远程设备的登陆信息发送至远程设备进行登录验证后,确定所述第一终端登录成功时创建的;基于所述协作会话分享链接向所述服务器发送所述协作会话标识,以使所述服务器在
所述第一终端和所述第二终端之间实现针对所述远程设备的协同操作,所述第二终端的标识存储于所述服务器创建的用于存储与所述第一终端存在协作关系的协作会话队列中。16.一种远程协同通信装置,其特征在于,包括:接收模块,用于接收第一终端发送的用于登录远程设备的登录信息;发送模块,用于将所述登录信息发送至所述远程设备进行登录验证;处理模块,用于当基于所述远程设备的验证通知确定登录成功时,为所述第一终端与所述远程设备间的协作会话创建一个协作会话标识并存储,以及创建一个协作会话队列,所述协作会话队列用于存储与所述第一终端存在协作关系的至少一个第二终端的标识;所述发送模块,还用于将所述协作会话标识发送给所述第一终端,以使所述第一终端将所述协作会话标识携带在协作会话分享链接中,发送至所述协作会话队列中的至少一个第二终端;所述处理模块,还用于在所述接收模块接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,在所述第一终端和所述至少一个第二终端之间实现针对所述远程设备的协同操作。17.一种远程协同通信装置,其特征在于,包括:发送模块,用于向服务器发送用于登录远程设备的登录信息,以使所述服务器将所述登录信息发送至所述远程设备进行登陆验证;接收模块,用于接收所述服务器发送的一个协作会话标识,所述协作会话标识是所述服务器基于所述远程设备的通知确定远程登陆成功时创建的;所述发送模块,还用于将所述协作会话标识携带在协作会话分享链接中,发送至协作会话队列中的至少一个第二终端,以使所述服务器在接收到所述至少一个第二终端基于所述协作会话分享链接发送的协作会话标识时,与所述至少一个第二终端实现针对所述远程设备的协同操作;其中,所述协作会话队列用于存储与协作会话发起端存在协作关系的至少一个第二终端的标识。18.一种远程协同通信装置,其特征在于,包括:接收模块,用于接收第一终端发送的协作会话分享链接,所述协作会话分享链接携带协作会话标识,所述协作会话标识是服务器将所述第一终端发送的用于登陆远程设备的登陆信息发送至远程设备进行登录验证后,确定所述第一终端登录成功时创建的;发送模块,用于基于所述协作会话分享链接向所述服务器发送所述协作会话标识,并在所述协作会话标识为所述第一终端与所述远程设备间的协作会话的标识时,被加入到所述服务器创建的用于存储与所述第一终端存在协作关系的协作会话队列中,实现与所述第一终端针对所述远程设备的系统操作。19.一种电子设备,其特征在于,包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-15中任一所述方法的步骤。20.一种计算机可读存储介质,其特征在于,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1-15中任一所述方法的步骤。

技术总结
本申请涉及远程通信技术领域,提供一种多端远程协同通信方法、装置、设备及存储介质,用于提高远程通信的安全性和效率,可应用到交通场景中。该方法中,第一终端将登录信息经服务器发送给远程设备进行登陆验证,登录验证成功即协作会话建立完成,服务器为该协作会话创建一个发送给第一终端的协作会话标识并存储,第一终端通过将该协作会话标识携带在协作会话分享链接中发送给至少一个第二终端,从而使至少一个第二终端通过协作会话分享链接接入第一终端与远程设备的协作会话中,无需发送登录信息,提高了远程协同通信的安全性,且由于第二终端和第一终端共用一个协作会话,降低了远程设备的登陆负荷,提高了多端远程协同通信的效率。效率。效率。


技术研发人员:黄俊威 孔超 蒲津川 李力 陈迪菲 肖娜 钟宇澄 吴茜 杨嘉琛 李路 吴炳文 李悦 李涛 李文举
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2023.08.03
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐