CN112073750B - 一种远程桌面控制方法及系统 - Google Patents

一种远程桌面控制方法及系统 Download PDF

Info

Publication number
CN112073750B
CN112073750B CN202010960935.XA CN202010960935A CN112073750B CN 112073750 B CN112073750 B CN 112073750B CN 202010960935 A CN202010960935 A CN 202010960935A CN 112073750 B CN112073750 B CN 112073750B
Authority
CN
China
Prior art keywords
client
data packet
server
protocol
controlled machine
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
Application number
CN202010960935.XA
Other languages
English (en)
Other versions
CN112073750A (zh
Inventor
张海洋
史文斌
潘晓凤
湛晓恒
刘钢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Yuanchuang Intelligent Control Technology Co ltd
Original Assignee
Zhejiang Yuanchuang Intelligent Control Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Yuanchuang Intelligent Control Technology Co ltd filed Critical Zhejiang Yuanchuang Intelligent Control Technology Co ltd
Priority to CN202010960935.XA priority Critical patent/CN112073750B/zh
Publication of CN112073750A publication Critical patent/CN112073750A/zh
Application granted granted Critical
Publication of CN112073750B publication Critical patent/CN112073750B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及远程控制技术领域,提供了一种远程桌面控制方法及系统,方法包括:建立客户端与服务端之间的通信,并在服务端接收到客户端的请求后,连接到被控机上;被控机软件录制屏幕,将视频流交给服务端;服务器将视频流进行分割,并将分割后的视频数据填充到通信协议中,形成数据包,向客户端发送数据包;客户端将数据包中的视频数据取出,显示在客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到通信协议中,形成数据包,通过通信协议向服务端发送数据包;服务端将包含用户操作信息的数据包发送至被控机,被控机软件完成交互事件。只传输视频流及交互事件,不在客户端浏览器涉及任何第三方远程协议,因此实现较为简单。

Description

一种远程桌面控制方法及系统
技术领域
本发明涉及远程控制的技术领域,尤其涉及一种远程桌面控制方法及系统。
背景技术
随着现代网络技术的高速发展及应用,传统CS架构的远程控制方法并不适合跨平台,并且需要安装体积不小的客户端,而传统浏览器远程方法需要安装IE控件或Flash控件等,不仅限定了浏览器必须为IE,且基于平台而开发的控件也难以跨平台。且随着互联网技术发展,传统IE控件及Flash技术已经渐渐退出历史舞台。而以往采用插件或控件的主要原因是网页标准没有长连接的通信协议,只能通过插件或控件获取Socket来传输数据,而新一代的HTML5已经拥有了长连接协议WebSocket,使无需插件或控件,原生实现远程桌面成为可能。
针对以上情况,现有技术中有采用基于HTML5的远程桌面方法,在专利申请号为201210318791.3的《基于Web的远程桌面展示方法》中,该专利可以解决上述问题,即在浏览器监视及控制远程计算机。但该专利所述方法要求客户端解析协议并展示到交互界面,其中服务端仅负责通信的传输协议转换,此方法要求客户端拥有该远程协议的打包/解包单元,在被控端不同平台不同协议的情况下,势必会引发客户端代码过大,使交互界面加载缓慢。且在客户端解析远程协议工作量巨大,会造成一定的性能损失。
发明内容
针对上述问题,本发明的目的在于提供一种远程桌面控制方法及系统,客户端仅需要实现固定的自有通信协议解析视频流及发送交互事件,由服务器及被控端软件实现远程视频流传输及处理交互事件。极大减轻了客户端的压力,且视频流在不同操作系统上更为通用。本方法只传输视频流及交互事件,不在客户端浏览器涉及任何第三方远程协议,因此实现较为简单。
本发明的上述发明目的是通过以下技术方案得以实现的:
一种远程桌面控制方法,包括以下步骤:
S1:通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,并在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上;
S2:所述被控机软件开始录制屏幕,并将视频流交给所述服务端;
S3:所述服务端将接收到的所述视频流进行分割,并将分割后形成的视频数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包;
S4:所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成所述数据包,通过所述通信协议向所述服务端发送所述数据包;
S5:所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件。
进一步地,在步骤S1中,定义WebSocket协议,具体包括:
所述服务端向所述客户端发送Server_Pack协议,所述客户端向所述服务端发送Client_Pack协议;
并且在所述Server_Pack协议和所述Client_Pack协议中设置有用于标注通过所述Server_Pack协议和所述Client_Pack协议发送的数据包的类型Type字段。
进一步地,在步骤S3中,所述服务端将接收到的所述视频流进行分割,并将数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包,具体为:
所述服务端通过包括FFmpeg在内的视频分割技术将所述视频流分割成秒级的H264编码的所述视频数据,并将所述视频数据填充到所述Server_Pack协议中对应的数据包字段中,并设置所述数据包的类型Type字段为视频,后通过所述WebSocket协议向所述客户端发送所述数据包。
进一步地,在步骤S4中,所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成数据包,通过所述通信协议向所述服务端发送所述数据包,具体为:
所述客户端接收到所述数据包后,当获取到所述数据包的类型Type字段中值为视频时,将所述数据包中的所述视频数据取出,使用包括JSMpeg在内的数据显示技术将所述视频数据显示在所述用户交互界面的Canvas节点上;
所述客户端使用浏览器事件监听用户操作,监听图像的Canvas节点,当用户进行包括移动鼠标、按下按键在内的操作时,浏览器将捕捉事件;
所述客户端根据交互事件的类型填充所述Client_Pack协议的类型Type字段,将交互事件的坐标信息填充到所述Client_Pack协议中对应的所述数据包字段中,后通过所述WebSocket协议向所述服务端发送所述数据包。
进一步地,在步骤S5中,所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件,具体为:
所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机;
所述被控机软件完成交互事件,所述被控机软件收到请求后,从所述Client_Pack协议中读出类型Type字段,根据类型调用所述数据包字段,使用所述数据包字段中的数据作为参数完成交互操作。
一种远程桌面控制系统,包括:通信建立模块,被控机录制模块,视频流分割模块,操作监听模块,交互事件完成模块;
所述通信建立模块,用于通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,并在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上;
所述被控机录制模块,用于提供给所述被控机软件录制屏幕,并将视频流交给所述服务端;
所述视频流分割模块,用于提供给所述服务端将接收到的所述视频流进行分割,并将分割后形成的视频数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包;
所述操作监听模块,用于提供给所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成所述数据包,通过所述通信协议向所述服务端发送所述数据包;
所述交互事件完成模块,用于提供给所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件。
进一步地,所述通信建立模块中,还包括:
客户端与服务端通信单元,用于通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,其中,定义WebSocket协议,具体包括:所述服务端向所述客户端发送Server_Pack协议,所述客户端向所述服务端发送Client_Pack协议,并且在所述Server_Pack协议和所述Client_Pack协议中设置有用于标注通过所述Server_Pack协议和所述Client_Pack协议发送的数据包的类型Type字段;
服务端与被控机通信单元,用于在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上。
进一步地,所述视频流分割模块,具体的工作过程为:
所述服务端通过包括FFmpeg在内的视频分割技术将所述视频流分割成秒级的H264编码的所述视频数据,并将所述视频数据填充到所述Server_Pack协议中对应的数据包字段中,并设置所述数据包的类型Type字段为视频,后通过所述WebSocket协议向所述客户端发送所述数据包。
进一步地,所述操作监听模块,具体的工作过程为:
所述客户端接收到所述数据包后,当获取到所述数据包的类型Type字段中值为视频时,将所述数据包中的所述视频数据取出,使用包括JSMpeg在内的数据显示技术将所述视频数据显示在所述用户交互界面的Canvas节点上;
所述客户端使用浏览器事件监听用户操作,监听图像的Canvas节点,当用户进行包括移动鼠标、按下按键在内的操作时,浏览器将捕捉事件;
所述客户端根据交互事件的类型填充所述Client_Pack协议的类型Type字段,将交互事件的坐标信息填充到所述Client_Pack协议中对应的所述数据包字段中,后通过所述WebSocket协议向所述服务端发送所述数据包;
进一步地,所述交互事件完成模块,具体的工作过程为:
所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机;
所述被控机软件完成交互事件,所述被控机软件收到请求后,从所述Client_Pack协议中读出类型Type字段,根据类型调用所述数据包字段,使用所述数据包字段中的数据作为参数完成交互操作。
与现有技术相比,本发明包括以下有益效果是:
本发明通过提供一种远程桌面控制方法及系统,其方法包括步骤:S1:通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,并在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上;S2:所述被控机软件开始录制屏幕,并将视频流交给所述服务端;S3:所述服务端将接收到的所述视频流进行分割,并将分割后形成的视频数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包;S4:所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成所述数据包,通过所述通信协议向所述服务端发送所述数据包;S5:所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件。上述技术方案,客户端仅需要实现固定的自有通信协议解析视频流及发送交互事件,由服务器及被控端软件实现远程视频流传输及处理交互事件。极大减轻了客户端的压力,且视频流在不同操作系统上更为通用。本方法只传输视频流及交互事件,不在客户端浏览器端涉及任何第三方远程协议。因此实现更为简单,兼容性好,适用范围更广。
附图说明
图1位本发明一种远程桌面控制方法的整体流程图;
图2为本发明一种远程桌面控制方法的系统部署图;
图3为本发明一种远程桌面控制系统的整体结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本发明的术语解释如下:
HTML5:HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式,被认为是互联网的核心技术之一。
客户端:指用户使用的计算机。
被控机:指用户需要控制的计算机。
本发明的技术概述为:
本发明为一种在支持HTML5的浏览器上,用于监视,控制远程计算机集群的一种方法,只要是支持HTML5的浏览器,不需要安装任意插件,即可实现对远程计算机的监视及控制,因此即使在不同的平台,不同的浏览器,都可以实现上述目标。
本发明包含如下步骤:定义统一的WebSocket通信协议,承载通信内容;客户端网页通过WebSocket与服务器建立连接并传入验证请求;服务器确认验证信息,从安装有被控机软件的指定计算机中获取视频流,并通过WebSocket协议传送;客户端页面解析视频流,并呈现在交互页面上;客户端将会监听鼠标及键盘等打包为交互事件,通过WebSocket传输到服务器,并由服务器转发给指定计算机中的被控端软件,由被控机软件操作被控端。
本发明的显著特点在于:以视频流方式和交互事件实现远程桌面。服务器与被控机软件负责具体协议解析和被控机操控,客户端只需解析视频流和发送交互事件。
第一实施例
如图1的整体流程图和图2的系统部署图所示,本实施例提供一种远程桌面控制方法,包括以下步骤:
S1:通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,并在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上。
在本实施例中,本步骤的目的在于,建立客户端、服务器、以及被控机之间的连接。服务器相当于客户端与被控机之间的连接桥梁。
具体地,客户端与服务端之间的连接通过包括WebSocket在内的通信协议进行。以WebSocket为例,定义WebSocket协议,具体包括:
所述服务端向所述客户端发送Server_Pack协议,所述客户端向所述服务端发送Client_Pack协议;并且在所述Server_Pack协议和所述Client_Pack协议中设置有用于标注通过所述Server_Pack协议和所述Client_Pack协议发送的数据包的类型Type字段。服务器收到Client_Pack协议后,会根据Type取出后面的数据进行解析。同理客户端浏览器收到Server_Pack协议后,会根据Type取出后面的数据进行解析。
具体地,协议定义代码示例如下:
Figure GDA0003868920420000071
Figure GDA0003868920420000081
需要说明的是,以上所列举的协议定义的代码,以及使用WebSocket和Socket进行连接只是一种具体的举例,不用于对本发明进行限制。
S2:所述被控机软件开始录制屏幕,并将视频流交给所述服务端。
具体地,在本实施例中,在客户端、服务端、被控机建立连接以后,被控机通过安装的被控机软件将屏幕录制下来,录制完成后,将形成的视频流传输到服务端上。
S3:所述服务端将接收到的所述视频流进行分割,并将分割后形成的视频数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包,具体为:
所述服务端通过包括FFmpeg在内的视频分割技术将所述视频流分割成秒级的H264编码的所述视频数据,并将所述视频数据填充到所述Server_Pack协议中对应的数据包字段(如上文代码中定义的:Data.Video)中,并设置所述数据包的类型Type字段为视频,后通过所述WebSocket协议向所述客户端发送所述数据包。
S4:所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成所述数据包,通过所述通信协议向所述服务端发送所述数据包,具体为:
所述客户端接收到所述数据包后,当获取到所述数据包的类型Type字段中值为视频时,将所述数据包中的所述视频数据(Data.Video)取出,使用包括JSMpeg在内的数据显示技术将所述视频数据显示在所述用户交互界面的Canvas节点上;
所述客户端使用浏览器事件监听用户操作,监听图像的Canvas节点,当用户进行包括移动鼠标、按下按键在内的操作时,浏览器将捕捉事件;
所述客户端根据交互事件的类型填充所述Client_Pack协议的类型Type字段,将交互事件的坐标信息填充到所述Client_Pack协议中对应的所述数据包字段中,后通过所述WebSocket协议向所述服务端发送所述数据包。
对Client_Pack协议进行填充的示例代码如下:
Figure GDA0003868920420000091
S5:所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件,具体为:
所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机;
被控机软件使用操作系统API完成交互事件。被控机软件收到请求后,从Client_Pack读出Type,根据类型调用以Data作为参数调用系统API完成操作。如Type为Mouse,则调用系统API SetCursorPos来设置鼠标的位置。SetCursorPos的参数——光标的X和Y则来自客户端填充的Data.MouseEvent的X和Y。
代码示意为:
Figure GDA0003868920420000101
第二实施例
如图3所示,本实施例提供了一种远程桌面控制系统,包括:通信建立模块1,被控机录制模块2,视频流分割模块3,操作监听模块4,交互事件完成模块5;
所述通信建立模块1,用于通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,并在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上;
所述被控机录制模块2,用于提供给所述被控机软件录制屏幕,并将视频流交给所述服务端;
所述视频流分割模块3,用于提供给所述服务端将接收到的所述视频流进行分割,并将分割后形成的视频数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包;
所述操作监听模块4,用于提供给所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成所述数据包,通过所述通信协议向所述服务端发送所述数据包;
所述交互事件完成模块5,用于提供给所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件。
进一步地,所述通信建立模块1中,还包括:
客户端与服务端通信单元11,用于通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,其中,定义WebSocket协议,具体包括:所述服务端向所述客户端发送Server_Pack协议,所述客户端向所述服务端发送Client_Pack协议,并且在所述Server_Pack协议和所述Client_Pack协议中设置有用于标注通过所述Server_Pack协议和所述Client_Pack协议发送的数据包的类型Type字段;
服务端与被控机通信单元12,用于在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上。
进一步地,所述视频流分割模块3,具体的工作过程为:
所述服务端通过包括FFmpeg在内的视频分割技术将所述视频流分割成秒级的H264编码的所述视频数据,并将所述适配数据填充到所述Server_Pack协议中对应的数据包字段中,并设置所述数据包的类型Type字段为视频,后通过所述WebSocket协议向所述客户端发送所述数据包。
进一步地,所述操作监听模块4,具体的工作过程为:
所述客户端接收到所述数据包后,当获取到所述数据包的类型Type字段中值为视频时,将所述数据包中的所述视频数据取出,使用包括JSMpeg在内的数据显示技术将所述视频数据显示在所述用户交互界面的Canvas节点上;
所述客户端使用浏览器事件监听用户操作,监听图像的Canvas节点,当用户进行包括移动鼠标、按下按键在内的操作时,浏览器将捕捉事件;
所述客户端根据交互事件的类型填充所述Client_Pack协议的类型Type字段,将交互事件的坐标信息填充到所述Client_Pack协议中对应的所述数据包字段中,后通过所述WebSocket协议向所述服务端发送所述数据包;
进一步地,所述交互事件完成模块5,具体的工作过程为:
所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机;
所述被控机软件完成交互事件,所述被控机软件收到请求后,从所述Client_Pack协议中读出类型Type字段,根据类型调用所述数据包字段,使用所述数据包字段中的数据作为参数完成交互操作。
本发明还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。如本说明书实施例所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Net work Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子系统执行时,使得所述电子系统执行实施例一所述的方法。在此不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。

Claims (8)

1.一种远程桌面控制方法,其特征在于,包括以下步骤:
S1:通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,并在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上;
S2:所述被控机软件开始录制屏幕,并将视频流交给所述服务端;
S3:所述服务端将接收到的所述视频流进行分割,并将分割后形成的视频数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包;
S4:所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成所述数据包,通过所述通信协议向所述服务端发送所述数据包;
S5:所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件;在步骤S1中,定义WebSocket协议,具体包括:
所述服务端向所述客户端发送Server_Pack协议,所述客户端向所述服务端发送Client_Pack协议;
并且在所述Server_Pack协议和所述Client_Pack协议中设置有用于标注通过所述Server_Pack协议和所述Client_Pack协议发送的数据包的类型Type字段。
2.根据权利要求1所述的远程桌面控制方法,其特征在于,在步骤S3中,所述服务端将接收到的所述视频流进行分割,并将数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包,具体为:
所述服务端通过包括FFmpeg在内的视频分割技术将所述视频流分割成秒级的H264编码的所述视频数据,并将所述视频数据填充到所述Server_Pack协议中对应的数据包字段中,并设置所述数据包的类型Type字段为视频,后通过所述WebSocket协议向所述客户端发送所述数据包。
3.根据权利要求2所述的远程桌面控制方法,其特征在于,在步骤S4中,所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成数据包,通过所述通信协议向所述服务端发送所述数据包,具体为:
所述客户端接收到所述数据包后,当获取到所述数据包的类型Type字段中值为视频时,将所述数据包中的所述视频数据取出,使用包括JSMpeg在内的数据显示技术将所述视频数据显示在所述用户交互界面的Canvas节点上;
所述客户端使用浏览器事件监听用户操作,监听图像的Canvas节点,当用户进行包括移动鼠标、按下按键在内的操作时,浏览器将捕捉事件;
所述客户端根据交互事件的类型填充所述Client_Pack协议的类型Type字段,将交互事件的坐标信息填充到所述Client_Pack协议中对应的所述数据包字段中,后通过所述WebSocket协议向所述服务端发送所述数据包。
4.根据权利要求2所述的远程桌面控制方法,其特征在于,在步骤S5中,所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件,具体为:
所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机;
所述被控机软件完成交互事件,所述被控机软件收到请求后,从所述Client_Pack协议中读出类型Type字段,根据类型调用所述数据包字段,使用所述数据包字段中的数据作为参数完成交互操作。
5.一种远程桌面控制系统,其特征在于,包括:通信建立模块,被控机录制模块,视频流分割模块,操作监听模块,交互事件完成模块;
所述通信建立模块,用于通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,并在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上;
所述被控机录制模块,用于提供给所述被控机软件录制屏幕,并将视频流交给所述服务端;
所述视频流分割模块,用于提供给所述服务端将接收到的所述视频流进行分割,并将分割后形成的视频数据填充到所述通信协议中,形成数据包,通过所述通信协议向所述客户端发送所述数据包;
所述操作监听模块,用于提供给所述客户端将所述数据包中的所述视频数据取出,显示在所述客户端的用户交互界面上,监听并捕捉用户操作,将用户操作信息填充到所述通信协议中,形成所述数据包,通过所述通信协议向所述服务端发送所述数据包;
所述交互事件完成模块,用于提供给所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机,所述被控机软件完成交互事件;所述通信建立模块中,还包括:
客户端与服务端通信单元,用于通过定义包括WebSocket在内的通信协议,建立客户端与服务端之间的通信,其中,定义WebSocket协议,具体包括:所述服务端向所述客户端发送Server_Pack协议,所述客户端向所述服务端发送Client_Pack协议,并且在所述Server_Pack协议和所述Client_Pack协议中设置有用于标注通过所述Server_Pack协议和所述Client_Pack协议发送的数据包的类型Type字段;
服务端与被控机通信单元,用于在所述服务端接收到所述客户端的请求后,通过Socket连接到被控机上安装的被控机软件上。
6.根据权利要求5所述的远程桌面控制系统,其特征在于,所述视频流分割模块,具体的工作过程为:
所述服务端通过包括FFmpeg在内的视频分割技术将所述视频流分割成秒级的H264编码的所述视频数据,并将所述视频数据填充到所述Server_Pack协议中对应的数据包字段中,并设置所述数据包的类型Type字段为视频,后通过所述WebSocket协议向所述客户端发送所述数据包。
7.根据权利要求6所述的远程桌面控制系统,其特征在于,所述操作监听模块,具体的工作过程为:
所述客户端接收到所述数据包后,当获取到所述数据包的类型Type字段中值为视频时,将所述数据包中的所述视频数据取出,使用包括JSMpeg在内的数据显示技术将所述视频数据显示在所述用户交互界面的Canvas节点上;
所述客户端使用浏览器事件监听用户操作,监听图像的Canvas节点,当用户进行包括移动鼠标、按下按键在内的操作时,浏览器将捕捉事件;
所述客户端根据交互事件的类型填充所述Client_Pack协议的类型Type字段,将交互事件的坐标信息填充到所述Client_Pack协议中对应的所述数据包字段中,后通过所述WebSocket协议向所述服务端发送所述数据包;
所述交互事件完成模块,具体的工作过程为:
所述服务端将包含所述用户操作信息的所述数据包发送至所述被控机;
所述被控机软件完成交互事件,所述被控机软件收到请求后,从所述Client_Pack协议中读出类型Type字段,根据类型调用所述数据包字段,使用所述数据包字段中的数据作为参数完成交互操作。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如权利要求1至4中任一项所述的方法被执行。
CN202010960935.XA 2020-09-14 2020-09-14 一种远程桌面控制方法及系统 Active CN112073750B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010960935.XA CN112073750B (zh) 2020-09-14 2020-09-14 一种远程桌面控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010960935.XA CN112073750B (zh) 2020-09-14 2020-09-14 一种远程桌面控制方法及系统

Publications (2)

Publication Number Publication Date
CN112073750A CN112073750A (zh) 2020-12-11
CN112073750B true CN112073750B (zh) 2023-02-28

Family

ID=73696643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010960935.XA Active CN112073750B (zh) 2020-09-14 2020-09-14 一种远程桌面控制方法及系统

Country Status (1)

Country Link
CN (1) CN112073750B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804323B (zh) * 2021-01-11 2022-11-18 上海智能交通有限公司 一种远程车载终端桌面控制系统及方法
CN113433860A (zh) * 2021-06-25 2021-09-24 山东齐鲁数通科技有限公司 一种桌面远程控制方法及系统
CN113572851B (zh) * 2021-07-29 2023-01-10 辽宁向日葵教育科技有限公司 一种基于浏览器的远程桌面连接方法
CN113703838B (zh) * 2021-08-30 2024-01-05 远景智能国际私人投资有限公司 设备控制方法、装置、设备及存储介质
CN115794292A (zh) * 2022-12-22 2023-03-14 北京深盾科技股份有限公司 一种界面调整方法、装置、电子设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833338A (zh) * 2012-08-31 2012-12-19 福建升腾资讯有限公司 基于Web的远程桌面展示方法
CN111447252A (zh) * 2020-02-19 2020-07-24 深圳点猫科技有限公司 一种基于websocket实现交互式输入的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8463918B2 (en) * 2010-01-22 2013-06-11 Microsoft Corporation Loss tolerant protocol for remoting desktop graphics

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833338A (zh) * 2012-08-31 2012-12-19 福建升腾资讯有限公司 基于Web的远程桌面展示方法
CN111447252A (zh) * 2020-02-19 2020-07-24 深圳点猫科技有限公司 一种基于websocket实现交互式输入的方法及系统

Also Published As

Publication number Publication date
CN112073750A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
CN112073750B (zh) 一种远程桌面控制方法及系统
US11019119B2 (en) Web-based live broadcast
US10110672B2 (en) Graphic sharing
WO2021082299A1 (zh) 一种视频播放方法及装置
US20160119399A1 (en) Extending browser support of real time media to any available codec
CN109068153B (zh) 视频播放方法、装置和计算机可读存储介质
CN106657257B (zh) 产生用于交互式多媒体应用程序的音视频的方法和装置
EP3267331B1 (en) Method and apparatus for cloud streaming service
CN104349177B (zh) 一种在桌面云下转向播放多媒体文件的方法、虚拟机及系统
WO2020134956A1 (zh) 一种视频推荐方法及设备
CN108337246B (zh) 防止重放延迟的媒体重放设备和媒体服务设备
CN110545472B (zh) 视频数据的处理方法、装置、电子设备及计算机可读介质
WO2015176648A1 (zh) 将智能终端上的数据传输至电视终端的方法、装置
JP7399999B2 (ja) 情報表示方法および装置
CN113873013B (zh) 一种离线包重组方法及系统
CN114040189A (zh) 多媒体测试方法、装置、存储介质及电子设备
CN111918074A (zh) 直播视频故障预警方法及相关设备
JP7269392B2 (ja) Mp4オンライン再生方法、装置、電子機器、記憶媒体およびコンピュータプログラム
CN102956208B (zh) 一种统计终端画面帧率的方法、装置及系统
CN112866745B (zh) 流媒体视频数据处理方法、装置、计算机设备和存储介质
EP3229478B1 (en) Cloud streaming service system, image cloud streaming service method using application code, and device therefor
US20200322698A1 (en) Supporting interactive video on non-browser-based devices
CN111447490A (zh) 流媒体文件处理方法及装置
CN109831701B (zh) 数字电视设备浏览器以及跨页面系统事件的扩展方法
CN114979719B (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
CB02 Change of applicant information

Address after: 310053 room 2201, 22 / F, building 2, No. 307 Liuhe Road, Puyan street, Binjiang District, Hangzhou, Zhejiang Province

Applicant after: Zhejiang Yuanchuang Intelligent Control Technology Co.,Ltd.

Address before: Room 312-315, area D, 309 Liuhe Road, Binjiang District, Hangzhou City, Zhejiang Province, 310053

Applicant before: ZHEJIANG YUANCHUANG BUILDING INTELLIGENT TECHNOLOGY CO.,LTD.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant