[发明专利]一种用于QT和Web端通信协议的执行方法和执行器有效
申请号: | 202111090274.0 | 申请日: | 2021-09-17 |
公开(公告)号: | CN113553205B | 公开(公告)日: | 2021-12-07 |
发明(设计)人: | 王铎 | 申请(专利权)人: | 统信软件技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京瀚方律师事务所 11774 | 代理人: | 周红力 |
地址: | 100176 北京市大兴区北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 qt web 通信协议 执行 方法 | ||
本发明公开了一种用于QT和Web端通信协议的执行方法和执行器,上述方法包括:建立缓存空间,并将观察者模型分发至QT和Web端创建的各个业务模块中;各个业务模块中的观察者模型监听缓存空间的数据变化情况;当缓存空间存在新数据时,各个业务模块中的观察者模型启动回调事件;各个业务模块中的观察者模型从缓存空间中提取新数据。上述执行器包括:预处理模块、观察模块、触发模块和提取模块。本发明通过对QT和Web端通信协议进行补充,对信号进行分发和监听,使业务不再依赖信号驱动,而是主动观察信号变化,一次变化,多处运行,从而提高了程序的灵活性和性能。
技术领域
本发明涉及协议优化技术领域,尤其涉及一种用于QT和Web端通信协议的执行方法和执行器。
背景技术
在现有技术中,为了打通QT(C++客户端)与QTWebEngine(浏览器引擎)之间的通信,通常使用QtWebChannel协议来完成C++中的信号数据与浏览器引擎中的信号数据之间的双向翻译,并将结果存储于指定的数据存储器(QObject)中,该存储器同时提供读取、修改、监听的接口,并提供能在web端使用的信号接口和信号槽通信协议。
如图1所示,上述现有技术方案通过QT端写好信号连接接口、函数,并将其注册到QWebChannel中,以注册表的形式存放;而Web应用通过QWebChannel中的注册表,得到存储器QObject,通过访问存储器,得到注册的函数对象;此外,调用函数可以创建信号槽链接,接收信号。当需要关闭连接时,则令调用函数关闭。
然而,上述现有技术方案通常只是进行简单的包装,其在实际使用中会出现以下三种情况:一、如图2所示,业务高度依赖于信号模块,导致大量业务混在信号模块中处理,使得代码耦合性增加,可维护性降低;二、如图3所示,为了降低信号模块与其他业务模块的耦合而产生多余的连接,从而影响性能;三、如图4所示,如果信号是链式传递的,则每次传递都需要写大量的数据处理、传输的代码,而代码很难规范且重复度高,因此容易造成代码冗余;此外,多人协作时,由于代码风格难以统一,从而造成代码的可维护性大大降低。
因此,亟需一种实现C++中的信号数据和浏览器引擎中的信号数据之间进行双向翻译的方法。
发明内容
为此,本发明提供一种用于QT和Web端通信协议的执行方法和执行器,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种用于QT和Web端通信协议的执行方法,包括:建立缓存空间,并将观察者模型分发至所述QT和Web端创建的各个业务模块中;通过各个业务模块中的观察者模型监听所述缓存空间的数据变化情况;当所述缓存空间存在新数据时,使得各个业务模块中的观察者模型启动回调事件;以及通过各个业务模块中的观察者模型从所述缓存空间中提取所述新数据。
优选地,所述通过各个业务模块中的观察者模型监听所述缓存空间的数据变化情况的步骤包括:判断QT和Web端通信中传输的通信数据的长度是否为0;以及当所述通信数据的长度不为0时,确定所述缓存空间存在新数据。
优选地,所述的方法,还包括:通过业务模块中的观察者模型派生子观察者模型,并将所述子观察者模型分发至与所述业务模块相关的子业务模块中,所述子观察者模型用于监听所述缓存空间的数据变化情况,还用于获得所述业务模块处理后的数据。
优选地,所述通过业务模块中的观察者模型派生子观察者模型的步骤包括:将所述观察者模型和所述业务模块的数据处理函数进行打包,以获得子观察者模型。
优选地,所述子观察者模型通过如下步骤来获得所述业务模块处理过的数据:所述子业务模块执行所述子观察者模型中的数据处理函数,获得所述业务模块处理后的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于统信软件技术有限公司,未经统信软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111090274.0/2.html,转载请声明来源钻瓜专利网。