公开/公告号CN113055747A
专利类型发明专利
公开/公告日2021-06-29
原文格式PDF
申请/专利权人 重庆锐明信息技术有限公司;
申请/专利号CN202110332581.9
发明设计人 吴价宝;
申请日2021-03-29
分类号H04N21/443(20110101);H04N21/4782(20110101);H04N21/81(20110101);H04N21/472(20110101);
代理机构51220 成都行之专利代理事务所(普通合伙);
代理人李朝虎
地址 400050 重庆市九龙坡区科园一路166号火炬大厦2号楼12-2、12-3
入库时间 2023-06-19 11:39:06
技术领域
本发明涉及计算机领域,具体涉及一种基于视频客户端跨浏览器集成系统。
背景技术
C/S:服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。
B/S:B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如NetscapeNavigator或InternetExplorer,服务器安装SQLServer、Oracle、MYSQL等数据库。浏览器通过WebServer同数据库进行数据交互。
ActiveX:是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。
随着现代软件的发展、业务的需要及效率的要求,越来越多的公司将C/S向B/S转型,但是很多传统的公司使用C/S方式,如果全部迁移B/S,将导致代码的重新开发、开发人员等一系的变化,成本大大增加,且还会改变客户很多习惯。所以本技术营运而生,当前的C/S保留,只需要在Web与客户端之间加一个桥梁,对当前C/S再次包装,让其嵌入浏览器,然后通过本地通信使浏览器与客户端交互。
ActiveX:是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM);现有技术的缺点:(1)浏览器只支持IE;(2)注册ActiveX麻烦,容易出错。
发明内容
本发明所要解决传统的公司使用C/S方式,如果全部迁移B/S,将导致代码的重新开发、开发人员等一系的变化,成本大大增加的技术问题,目的在于提供一种基于视频客户端跨浏览器集成系统,实现了客户端插件跟随浏览器显示、隐藏、放大、缩小;实现了容易找到对应浏览器的句柄;实现了客户端与浏览器本地通信。
本发明通过下述技术方案实现:
基于视频客户端跨浏览器集成系统,包括用户端、WebSdk端和视频客户端,所述视频客户端包括Media ClientX模块和prowinserver模块;所述prowinserver模块,负责MediaClientX模块的启动;所述MediaClientX模块,提供视频业务,并将视频业务融入到用户端中的浏览器;
所述用户端,交互于视频客户端,下发指令初始化视频客户端,对浏览器进行基础操作,并获取浏览器的信息业务;
所述WebSdk端,用于用户端调用接口,为用户端和视频客户端之间建立通信连接,实时计算视频客户端所要展示的位置、大小,用于支持视频客户端与浏览器的UI界面一起移动、缩放、显示或隐藏;将C/S架构下的视频客户端融合到B/S架构下的浏览器,支持大部分主流浏览器,
所述视频客户端,用于执行用户端发出的指令。
所述视频客户端,即桌面客户端程序,用于执行用户端发出的指令,用于处理跨浏览器集成方案和视频业务。
首先websocket是一种网络通信协议,并且是为了解决实时获取服务器数据而实现的区别http一种通信协议。WebSocket连接允许客户端和服务器之间进行全双工通信,以便任一方都可以通过建立的连接将数据推送到另一端,WebSocket只需要建立一次连接,就可以一直保持连接状态。这相比于轮询方式的不停建立连接显然效率要大大提高。ProwinServer:WinServer服务程序,主要负责MediaClientX的启动;MediaClientX:桌面程序,主要提供视频等业务、融入到浏览器
进一步,所述用户端安装视频客户端后,视频客户端的prowinserver模块自启动websoket服务,所述用户端开始下发初始化视频客户端指令给WebSdk端。
进一步,所述WebSdk端根据用户端发出初始化视频客户端指令,在约定端口范围内连接本地Web Socket服务后,获取用户端中浏览器的类型,生成浏览器的标题唯一随机数,计算视频客户端在浏览器中展示的初始位置和大小;将用户端中浏览器的类型、浏览器的标题唯一随机数、视频客户端在浏览器中展示的初始位置和大小数据进行封装操作,生成封装指令,所述WebSdk端将封装指令发送给prowinserver模块;当前的C/S保留,只需要在Web与客户端之间加一个桥梁,对当前C/S再次包装,让其嵌入浏览器,然后通过本地通信使浏览器与客户端交互。外部进程嵌入浏览器,且可以在多种浏览器使用
进一步,所述prowinserver模块收到封装指令后,所述Prowinserver模块启动MediaClientX模块,传入MediaClientX模块封装指令和分配给MediaClientX将启动WebSockt的服务端口数据,所述封装指令包括用户端中浏览器的类型、浏览器的标题唯一随机数、视频客户端在浏览器中展示的初始位置和大小数据,同时Prowinserver模块反馈WebSdk连接MediaClientX模块的端口参数到WebSdk模块。
进一步,所述MediaClientX模块解析封装指令,根据解析的指令开启本地WebSocket服务;同时,根据封装指令中用户端中浏览器的类型、浏览器的标题唯一随机数、视频客户端在浏览器中展示的初始位置和大小数据,借助Window Api,设置视频客户端的注册用户为唯一网页的句柄,将MediaClientX模块融入到用户端中的浏览器。
进一步,WebSdk模块连接视频客户端中Mediclientx模块的Websocket服务端口。
进一步,所述视频客户端中的Mediclientx模块完成初始化后,发送完成指令给WebSdk模块;
进一步,所述Websdk模块接收到完成指令后,完成初始化操作,并发送完成指令给用户模块,即初始化结束。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明一种基于视频客户端跨浏览器集成系统,外部进程嵌入浏览器,且可以在多种浏览器使用;通过JS脚本将C/S架构下的视频客户端融合到B/S架构下的浏览器,支持大部分主流浏览器,如chrome、firfox、edge、360等,当前的C/S保留,只需要在Web与客户端之间加一个桥梁,对当前C/S再次包装,让其嵌入浏览器,然后通过本地通信使浏览器与客户端交互。外部进程嵌入浏览器,且可以在多种浏览器使用。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1是本发明系统结构图;
图2是本发明系统初始化流程图;
图3是本发明系统用户操作流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
在以下描述中,为了提供对本发明的透彻理解阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的结构、电路、材料或方法。
在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“一个实施例”、“实施例”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和、或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的示图都是为了说明的目的,并且示图不一定是按比例绘制的。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
在本发明的描述中,需要理解的是,术语“前”、“后”、“左”、“右”、“上”、“下”、“竖直”、“水平”、“高”、“低”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
实施例1:
如图1所示,基于视频客户端跨浏览器集成系统,包括用户端、WebSdk端和视频客户端,视频客户端包括Media ClientX模块和prowinserver模块;WinServer模块,负责MediaClientX模块的启动;MediaClientX模块,提供视频业务,并将视频业务融入到用户端中的浏览器;
用户端,交互于视频客户端,下发指令初始化视频客户端,对浏览器进行基础操作,并获取浏览器的信息业务;
WebSdk端,用于用户端调用接口,为用户端和视频客户端之间建立通信连接,实时计算视频客户端所要展示的位置、大小,用于支持视频客户端与浏览器的UI界面一起移动、缩放、显示或隐藏;将C/S架构下的视频客户端融合到B/S架构下的浏览器,支持大部分主流浏览器,
视频客户端,用于执行用户端发出的指令。
视频客户端,即桌面客户端程序,用于执行用户端发出的指令,用于处理跨浏览器集成方案和视频业务。
首先websocket是一种网络通信协议,并且是为了解决实时获取服务器数据而实现的区别http一种通信协议。WebSocket连接允许客户端和服务器之间进行全双工通信,以便任一方都可以通过建立的连接将数据推送到另一端,WebSocket只需要建立一次连接,就可以一直保持连接状态。这相比于轮询方式的不停建立连接显然效率要大大提高。ProwinServer:WinServer服务程序,主要负责MediaClientX的启动;MediaClientX:桌面程序,主要提供视频等业务、融入到浏览器
用户端安装视频客户端后,视频客户端的prowinserver模块自启动websoket服务,用户端开始下发初始化视频客户端指令给WebSdk端。
WebSdk端根据用户端发出初始化视频客户端指令,在约定端口范围内连接本地Web Socket服务后,获取用户端中浏览器的类型,生成浏览器的标题唯一随机数,计算视频客户端在浏览器中展示的初始位置和大小;将用户端中浏览器的类型、浏览器的标题唯一随机数、视频客户端在浏览器中展示的初始位置和大小数据进行封装操作,生成封装指令,WebSdk端将封装指令发送给prowin server模块;当前的C/S保留,只需要在Web与客户端之间加一个桥梁,对当前C/S再次包装,让其嵌入浏览器,然后通过本地通信使浏览器与客户端交互。外部进程嵌入浏览器,且可以在多种浏览器使用
prowinserver模块收到封装指令后,Prowinserver模块启动MediaClientX模块,传入MediaClientX模块封装指令和分配给MediaClientX将启动WebSocket的服务端口数据,封装指令包括用户端中浏览器的类型、浏览器的标题唯一随机数、视频客户端在浏览器中展示的初始位置和大小数据,同时Prowinserver模块反馈WebSdk连接MediaClientX模块的端口参数到WebSdk模块。
MediaClientX模块解析封装指令,根据解析的指令开启本地WebSocket服务;同时,根据封装指令中用户端中浏览器的类型、浏览器的标题唯一随机数、视频客户端在浏览器中展示的初始位置和大小数据,借助Window Api,设置视频客户端的注册用户为唯一网页的句柄,将MediaClientX模块融入到用户端中的浏览器。
WebSdk模块连接视频客户端中Mediclientx模块的Websocket服务端口。
视频客户端中的Mediclientx模块完成初始化后,发送完成指令给WebSdk模块;
Websdk模块接收到完成指令后,完成初始化操作,并发送完成指令给用户模块,即初始化结束。
实施例二
本实施例应用于实施例1所述的一种基于视频客户端跨浏览器集成系统,其中,1个Web对应1个Web-Sdk,一个Web-Sdk对应一个MediClientX,1个用户下只有一个ProwinServer、可以由多个MediaClientX,根据用户需要。
如图2所示,A1-A6:为用户正常操作顺序、D1-D2:安装客户端流程,
B1-B5与C1-C2并行处理,在A1-A6后面执行。
A1:用户打开浏览器,下发指令初始化视频客户端
A2:根据用户指令,在约定端口[20000,20010],并行尝试连接本地WebSocket服务,连上一个结束连接,都为连上表示为安装视频客户端,提示安装。
D1:安装完视频客户端后,客户端自动Prowinserver服务
D2:并开启本地Websocket服务,端口在[20000,20010]范围启动一个可用端口。
A3:WebSdk获取浏览器类型、生成浏览器标题唯一随机数、计算视频客户端在浏览器展示的位置、大小;
A4:与A2相同;
A5:封装指令下发给prowinserver,浏览器类型、浏览器临时随机数、客户端需要展示的位置、大小;
A6:prowinserver收到消息,分配MediaClientX可以开启的本地Websocket服务端口;
B1:Prowinserver启动MediaClientX,并传入浏览器类型、浏览器临时随机数、客户端需要展示的位置、大小信息;
B2:解析信令,初始化视频客户端;
B3:根据传入的端口开启本地WebSocket服务;
B4:MediaClientX根据浏览器类型、浏览器临时随机数遍历当前用户计算机,找到浏览器唯一的网页,并获取当前网页句柄,把当前客户端视频融入到浏览器,借助WindowApi,指定客户端的拥有者为唯一网页的句柄。;
B5:加载完成,将客户端初始启动位置放到浏览器指定位置及大小;
B6:加载完成,返回指令给WebSdk,WebSdk将浏览器临时随机数去掉;
C1:prowinserver返回WebSocket消息给WebSdk;
C2:WebSdk不断尝试连接MediaClientX的WebSocket,连接成功,结束连接;
C3:WebSdk毫秒级时间传输视频客户端需要展示的位置,大小。
如图3所示,为用户正常操作流程:
A1:用户拖动、缩放浏览器;
A2:WebSdk负责计算当前视频客户端需要展示的位置、大小;
A3:视频客户端需要根据传入的以桌面为参照物的位置、大小自我适应,并需要计算电脑的分辨率折算;
B1:用户切换网页、最小化浏览器、最大化浏览器;
A2:WebSdk根据情况分析客户端此时需要显示还是隐藏;
A3:视频客户端需要根据收到的指令显示或者隐藏;
A1:用户关闭浏览器、关闭网页、或者浏览器异常等;
A2:WebSdk断开Websocket连接;
A3:视频客户端检测到WebSocket连接断开,关闭视频客户端;
A1:用户下发业务指令,如打开视频等,需要传入视频等服务器信息;
A2:WebSdk封装接口下发;
A3:视频客户端解析指令,根据指令做出响应,如打开视频,需要根据服务器信息连接媒体等服务打开视频。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 通用消息系统,为基于PC /基于Web的客户端提供集成的语音,数据和传真消息传递服务,包括用于高效地将语音/传真消息分发给基于Web的客户端的大型对象服务器
机译: 包括客户端管理器和视频服务器的监控系统的操作方法,其客户端管理器以及能够通过基于网络的控制命令解码来控制旧相机的视频服务器
机译: 通用消息系统,向基于PC / Web的客户端提供集成的语音,数据和传真消息服务,包括内容管理器,用于从内容提供商接收信息,并将其格式化为多媒体容器,以分发给基于Web的客户端