CN108170536B - Web程序的拓展方法和装置 - Google Patents
Web程序的拓展方法和装置 Download PDFInfo
- Publication number
- CN108170536B CN108170536B CN201611115660.XA CN201611115660A CN108170536B CN 108170536 B CN108170536 B CN 108170536B CN 201611115660 A CN201611115660 A CN 201611115660A CN 108170536 B CN108170536 B CN 108170536B
- Authority
- CN
- China
- Prior art keywords
- message body
- command
- return
- request message
- websocket server
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 118
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000003993 interaction Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 21
- 238000011161 development Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及WEB程序的拓展方法和装置,其中,WEB程序的拓展方法包括:连接至Websocket服务器,设置一个回调命令池;根据调用请求,构造请求消息体,将请求消息体发送至Websocket服务器;其中,Websocket服务器接收请求消息体进行相应处理,生成并发出返回消息体,请求消息体和返回消息体均包括消息标识和命令参数;接收返回消息体,解析出返回值,根据返回值从回调命令池获取回调方法并执行;通过请求消息体与返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,执行结果为计算机执行命令而得到的结果。通过本发明的技术方案能够拓展WEB程序访问计算机资源的能力,增加WEB应用的应用场景并增强其适应能力。
Description
技术领域
本发明涉及软件开发技术领域,具体而言,涉及一种WEB程序的拓展方法和一种WEB程序的拓展装置。
背景技术
随着WEB(互联网网页)技术的发展,越来越多的应用软件在转变为WEB应用,但是由于受WEB标准的限制,WEB应用只能使用有限的计算机资源,使WEB应用的能力收到限制,同时也限制了WEB应用的使用场景。现有技术中,开发人员使用自己制作的网页应用浏览装置来提供额外的程序接口,但是这样的装置需要比较专业的技术人员话费较长时间开发,对于一些开发快速的WEB应用来说,此方法需要的人力成本过高,效率也比较低。
因此,如何提供一种简单快捷的方法拓展WEB应用访问计算机资源的能力,增加WEB应用的应用场景并增强其适应能力成为亟待解决的技术问题。
发明内容
本发明旨在至少解决上述现有技术或相关技术中存在的技术问题之一。
为此,本发明的一个目的在于提出了一种WEB程序的拓展方法。
本发明的另一个目的在于对应提供了一种WEB程序的拓展装置。
本发明的第一方面提出了一种WEB程序的拓展方法,包括:连接至Websocket服务器,设置一个回调命令池;根据调用请求,构造请求消息体,将请求消息体发送至Websocket服务器;其中,Websocket服务器接收请求消息体进行相应处理,生成并发出返回消息体,请求消息体和返回消息体均包括消息标识和命令参数;接收返回消息体,解析出返回值,根据返回值从回调命令池获取回调方法(在异步通讯中收到返回值后调用的方法)并执行;通过请求消息体与返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,执行结果为计算机执行命令而得到的结果。
根据本发明第一方面的WEB程序的拓展方法,通过Websocket服务器与浏览器(WEB前端程序)之间的全双工通信保证调用命令和执行结果的传递,拓展WEB程序调用计算机资源的能力。其中,Websocket服务器能够是安装到本地的服务框架也可以是设置在云端Websocket服务器,来配合浏览器执行WEB程序,达到调用计算机资源的目的。具体地,
WEB页面在与Websocket服务器建立连接之前需要协商好连接端口,并设置备选端口选取策略和身份验证机制,防止在端口被占用时无法连接。WEB前端程序与Websocket服务器之间建立握手协议,并建立命令回调池。WEB程序发送命令到服务器的具体过程为:开发一个唯一字符串生成装置,构造JSON(Javascript对象表示法)格式的字符串作为消息体,使用生成的唯一字符串作为消息标识,将指令及参数放入消息体,然后将消息发送出去,将用户给的成功及失败回调函数,使用之前生成的唯一字符串作为标识,存入回调命令池。在Websocket服务器端根据WEB程序端的请求发布面向计算机资源的命令后,计算机相应软件或硬件会执行Websocket服务器发出的命令,执行结果会被WEB程序端从回调池中获取的回调方法反映,WEB程序接受到消息之后,从消息体中取出消息标识字符串,从回调命令池中取出回调方法,根据是否成功标识来调用成功回调方法或失败回调方法,将回传的数据作为参数传入方法,在WEB程序端执行回调方法后完成了一次交互。随后通过请求消息体与返回消息体之间的多次数据交换得到对计算机资源的调用结果。其间使用轻量的数据格式(json)进行通讯,传输数据量很小,数据交换过程也通过Websocket服务实现了全双工,拓展了WEB程序对计算机资源的调用能力,省去了应用程序接口的开发过程,提高WEB程序的开发速度,节省人力成本。其中,请求消息体格式如表1所示:
表1
返回消息体格式如表2所示:
表2
回传消息体属性名称 | 消息体属性含义 |
MessageId | 消息标识,用于WEB页面匹配相应的回调方法 |
Result | 布尔值,用于标识执行是否成功 |
Data | 数据,用于存储命令处理器执行的返回值 |
在上述技术方案中,优选地,在与Websocket服务器建立连接,初始化一个回调命令池之前,还包括:根据接收到的网页启动指令,启动WEB页面并加载程序模块;根据接收到的调用请求指令,启动Websocket服务器,设置一个命令处理器池。
在该技术方案中,在用户启动网页时加载WEB页面和WEB程序模块,其中,程序模块是是一个或多个按用户需求开发的网页插件(包含一组本地服务可执行的命令体的文件),在用户使用WEB程序调用计算机软件或硬件资源时启动Websocket服务器,并将其处理程序设置为处理器池,之后由处理器池负责调用不同的处理器处理WEB程序的命令。
在上述技术方案中,优选地,Websocket服务器接收请求消息体进行相应处理,生成并发出返回消息体,具体包括:根据Websocket服务器解析请求消息体,得到命令名称,根据命令名称从命令处理器池中查找到对应的命令处理器,使用请求消息体中的命令参数初始化命令处理器;根据命令处理器执行命令名称的方法体,得到返回值,并根据返回值构造返回消息体,将返回消息体发出。
在该技术方案中,当Websocket服务器接受到消息后,尝试使用约定好的消息体格式解析消息,如果解析失败,说明消息体不符合规范,则不处理;如果解析成功,则根据消息的指令名称从命令处理器池中找出对应的命令处理器,使用消息体中传递的参数初始化命令处理器。命令处理器实例化完成之后,执行命令的方法体,获取到方法体返回值,将返回值放入回传消息体,同时将传递过来的消息标识字符串填入回传消息体,序列化为JSON形式字符串,通过建立的连接将JSON形式的消息体回传回去。使WEB程序端能够通过Websocket服务调用计算机的硬件或软件资源,实现WEB程序的能力拓展。
在上述技术方案中,优选地,启动WEB页面并加载程序模块,具体包括:与Websocket服务器上相应的程序模块进行对比,对程序模块进行更新;将更新后的程序模块注册到命令处理器池。
在该技术方案中,获取本地命令模块的列表及版本号与服务器上的进行对比,下载缺少的以及有差异的模块,对本地模块进行更新,并依照命令处理器接口匹配模块中所有的处理器注册到本地的处理器池中。
在上述技术方案中,优选地,命令处理器池包括:预置命令处理器和按需开发命令处理器。
在该技术方案中,命令处理器池包括多个命令处理器,负责解析并执行各种类型的命令,在服务端一般都设有预置命令处理器,但是为了满足用户的多样化需求,拓展服务端的处理能力和范围,按需开发的命令处理器也加入到服务端命令处理池才能够更好地帮助WEB程序实现相应各自目的。
本发明的第二方面提供了一种WEB程序的拓展装置,包括:连接单元,连接至Websocket服务器,设置一个回调命令池;处理单元,根据调用请求,构造请求消息体,将请求消息体发送至Websocket服务器;其中,Websocket服务器接收请求消息体进行相应处理,生成并发出返回消息体,请求消息体和返回消息体均包括消息标识和命令参数;交互单元,接收返回消息体,解析出返回值,根据返回值从回调命令池获取回调方法并执行;结果单元,通过请求消息体与返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,执行结果为计算机执行指令而得到的结果。
根据本发明第二方面的WEB程序的拓展装置,通过Websocket服务器与浏览器(WEB前端程序)之间的全双工通信保证调用命令和执行结果的传递,拓展WEB程序调用计算机资源的能力。其中Websocket服务器能够是安装到本地的服务框架也可以是设置在云端Websocket服务器,来配合浏览器执行WEB程序,达到调用计算机资源的目的。具体地,WEB页面在与Websocket服务器建立连接之前需要协商好连接端口,并设置备选端口选取策略和身份验证机制,防止在端口被占用时无法连接。WEB前端程序与Websocket服务器之间建立握手协议,并建立命令回调池。WEB程序发送命令到服务器的具体过程为:开发一个唯一字符串生成装置,构造JSON(Javascript对象表示法)格式的字符串作为消息体,使用生成的唯一字符串作为消息标识,将指令及参数放入消息体,然后将消息发送出去,将用户给的成功及失败回调函数,使用之前生成的唯一字符串作为标识,存入回调命令池。在Websocket服务器端根据WEB程序端的请求发布面向计算机资源的命令后,计算机相应软件或硬件会执行Websocket服务器发出的命令,执行结果会被WEB程序端从回调池中获取的回调方法反映,WEB程序接受到消息之后,从消息体中取出消息标识字符串,从回调命令池中取出回调方法,根据是否成功标识来调用成功回调方法或失败回调方法,将回传的数据作为参数传入方法,在WEB程序端执行回调方法后完成了一次交互。随后通过请求消息体与返回消息体之间的多次数据交换得到对计算机资源的调用结果。其间使用轻量的数据格式(json)进行通讯,传输数据量很小,数据交换过程也通过Websocket服务实现了全双工,拓展了WEB程序对计算机资源的调用能力,省去了应用程序接口的开发过程,提高WEB程序的开发速度,节省人力成本。其中,请求消息体格式如表1所示:
表1
返回消息体格式如表2所示:
表2
回传消息体属性名称 | 消息体属性含义 |
MessageId | 消息标识,用于WEB页面匹配相应的回调方法 |
Result | 布尔值,用于标识执行是否成功 |
Data | 数据,用于存储命令处理器执行的返回值 |
在上述技术方案中,优选地,还包括:加载单元,根据接收到的网页启动指令,启动WEB页面并加载程序模块;服务单元,根据接收到的调用请求指令,启动Websocket服务器,设置一个命令处理器池。
在该技术方案中,在用户启动网页时加载WEB页面和WEB程序模块,其中,程序模块是是一个或多个按用户需求开发的网页插件(包含一组本地服务可执行的命令体的文件),在用户使用WEB程序调用计算机软件或硬件资源时启动Websocket服务器,并将其处理程序设置为处理器池,之后由处理器池负责调用不同的处理器处理WEB程序的命令。
在上述技术方案中,优选地,处理单元具体用于:根据Websocket服务器解析请求消息体,得到命令名称,根据命令名称从命令处理器池中查找到对应的命令处理器,使用请求消息体中的命令参数初始化命令处理器;根据命令处理器执行命令名称的方法体,得到返回值,并根据返回值构造返回消息体,将返回消息体发出。
在该技术方案中,当Websocket服务器接受到消息后,尝试使用约定好的消息体格式解析消息,如果解析失败,说明消息体不符合规范,则不处理;如果解析成功,则根据消息的指令名称从命令处理器池中找出对应的命令处理器,使用消息体中传递的参数初始化命令处理器。命令处理器实例化完成之后,执行命令的方法体,获取到方法体返回值,将返回值放入回传消息体,同时将传递过来的消息标识字符串填入回传消息体,序列化为JSON形式字符串,通过建立的连接将JSON形式的消息体回传回去。使WEB程序端能够通过Websocket服务调用计算机的硬件或软件资源,实现WEB程序的能力拓展。
在上述技术方案中,优选地,加载单元具体用于:与Websocket服务器上相应的程序模块进行对比,对程序模块进行更新;将更新后的程序模块注册到命令处理器池。
在该技术方案中,获取本地命令模块的列表及版本号与服务器上的进行对比,下载缺少的以及有差异的模块,对本地模块进行更新,并依照命令处理器接口匹配模块中所有的处理器注册到本地的处理器池中。
在上述技术方案中,优选地,命令处理器池包括:预置命令处理器和按需开发命令处理器。
在该技术方案中,命令处理器池包括多个命令处理器,负责解析并执行各种类型的命令,在服务端一般都设有预置命令处理器,但是为了满足用户的多样化需求,拓展服务端的处理能力和范围,按需开发的命令处理器也加入到服务端命令处理池才能够更好地帮助WEB程序实现相应各自目的。
附图说明
图1示出了根据本发明第一方面实施例的WEB程序的拓展方法示意流程图。
图2示出了根据本发明第二方面实施例的WEB程序的拓展装置示意框图。
图3示出了根据本发明实施例的本地服务启动示意图。
图4示出了根据本发明实施例的工作流程示意图。
图5示出了根据本发明实施例的命令处理流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征能够相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还能够采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明第一方面实施例的WEB程序的拓展方法示意流程图。
如图1所示,根据本发明第一方面的实施例提出了一种WEB程序的拓展方法,包括:步骤102,连接至Websocket服务器,设置一个回调命令池;步骤104,根据调用请求,构造请求消息体,将请求消息体发送至Websocket服务器;其中,Websocket服务器接收请求消息体进行相应处理,生成并发出返回消息体,请求消息体和返回消息体均包括消息标识和命令参数;步骤106,接收返回消息体,解析出返回值,根据返回值从回调命令池获取回调方法(在异步通讯中收到返回值后调用的方法)并执行;步骤108,通过请求消息体与返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,执行结果为计算机执行命令而得到的结果。
根据本发明第一方面的WEB程序的拓展方法,通过Websocket服务器与浏览器(WEB前端程序)之间的全双工通信保证调用命令和执行结果的传递,拓展WEB程序调用计算机资源的能力。其中Websocket服务器能够是安装到本地的服务框架也可以是设置在云端Websocket服务器,来配合浏览器执行WEB程序,达到调用计算机资源的目的。具体地,WEB页面在与Websocket服务器建立连接之前需要协商好连接端口,并设置备选端口选取策略和身份验证机制,防止在端口被占用时无法连接。WEB前端程序与Websocket服务器之间建立握手协议,并建立命令回调池。WEB程序发送命令到服务器的具体过程为:开发一个唯一字符串生成装置,构造JSON(Javascript对象表示法)格式的字符串作为消息体,使用生成的唯一字符串作为消息标识,将指令及参数放入消息体,然后将消息发送出去,将用户给的成功及失败回调函数,使用之前生成的唯一字符串作为标识,存入回调命令池。在Websocket服务器端根据WEB程序端的请求发布面向计算机资源的命令后,计算机相应软件或硬件会执行Websocket服务器发出的命令,执行结果会被WEB程序端从回调池中获取的回调方法反映,WEB程序接受到消息之后,从消息体中取出消息标识字符串,从回调命令池中取出回调方法,根据是否成功标识来调用成功回调方法或失败回调方法,将回传的数据作为参数传入方法,在WEB程序端执行回调方法后完成了一次交互。随后通过请求消息体与返回消息体之间的多次数据交换得到对计算机资源的调用结果。其间使用轻量的数据格式(json)进行通讯,传输数据量很小,数据交换过程也通过Websocket服务实现了全双工,拓展了WEB程序对计算机资源的调用能力,省去了应用程序接口的开发过程,提高了WEB程序的开发速度,节省人力成本。其中,请求消息体格式如表1所示:
表1
返回消息体格式如表2所示:
表2
回传消息体属性名称 | 消息体属性含义 |
MessageId | 消息标识,用于WEB页面匹配相应的回调方法 |
Result | 布尔值,用于标识执行是否成功 |
Data | 数据,用于存储命令处理器执行的返回值 |
根据本发明第一方面的WEB程序的拓展方法,优选地,在与Websocket服务器建立连接,初始化一个回调命令池之前,还包括:根据接收到的网页启动指令,启动WEB页面并加载程序模块;根据接收到的调用请求指令,启动Websocket服务器,设置一个命令处理器池。
在该实施例中,在用户启动网页时加载WEB页面和WEB程序模块,其中,程序模块是是一个或多个按用户需求开发的网页插件(包含一组本地服务可执行的命令体的文件),在用户使用WEB程序调用计算机软件或硬件资源时启动Websocket服务器,并将其处理程序设置为处理器池,之后由处理器池负责调用不同的处理器处理WEB程序的命令。
根据本发明第一方面的WEB程序的拓展方法,优选地,Websocket服务器接收请求消息体进行相应处理,生成并发出返回消息体,具体包括:根据Websocket服务器解析请求消息体,得到命令名称,根据命令名称从命令处理器池中查找到对应的命令处理器,使用请求消息体中的命令参数初始化命令处理器;根据命令处理器执行命令名称的方法体,得到返回值,并根据返回值构造返回消息体,将返回消息体发出。
在该实施例中,当Websocket服务器接受到消息后,尝试使用约定好的消息体格式解析消息,如果解析失败,说明消息体不符合规范,则不处理;如果解析成功,则根据消息的指令名称从命令处理器池中找出对应的命令处理器,使用消息体中传递的参数初始化命令处理器。命令处理器实例化完成之后,执行命令的方法体,获取到方法体返回值,将返回值放入回传消息体,同时将传递过来的消息标识字符串填入回传消息体,序列化为JSON形式字符串,通过建立的连接将JSON形式的消息体回传回去。使WEB程序端能够通过Websocket服务调用计算机的硬件或软件资源,实现WEB程序的能力拓展。
根据本发明第一方面的WEB程序的拓展方法,优选地,启动WEB页面并加载程序模块,具体包括:与Websocket服务器上相应的程序模块进行对比,对程序模块进行更新;将更新后的程序模块注册到命令处理器池。
在该实施例中,获取本地命令模块的列表及版本号与服务器上的进行对比,下载缺少的以及有差异的模块,对本地模块进行更新,并依照命令处理器接口匹配模块中所有的处理器注册到本地的处理器池中。
根据本发明第一方面的WEB程序的拓展方法,优选地,命令处理器池包括:预置命令处理器和按需开发命令处理器。
在该实施例中,命令处理器池包括多个命令处理器,负责解析并执行各种类型的命令,在服务端一般都设有预置命令处理器,但是为了满足用户的多样化需求,拓展服务端的处理能力和范围,按需开发的命令处理器也加入到服务端命令处理池才能够更好地帮助WEB程序实现相应各自目的。
图2示出了根据本发明第二方面实施例的WEB程序的拓展装置框图。
如图2所示,本发明的第二方面的实施例提供了一种WEB程序的拓展装置200,包括:连接单元202,连接至Websocket服务器,设置一个回调命令池;处理单元204,根据调用请求,构造请求消息体,将请求消息体发送至Websocket服务器;其中,Websocket服务器接收请求消息体进行相应处理,生成并发出返回消息体,请求消息体和返回消息体均包括消息标识和命令参数;交互单元206,接收返回消息体,解析出返回值,根据返回值从回调命令池获取回调方法并执行;结果单元208,通过请求消息体与返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,执行结果为计算机执行指令而得到的结果。
根据本发明第二方面实施例的WEB程序的拓展装置200,通过Websocket服务器与浏览器(WEB前端程序)之间的全双工通信保证调用命令和执行结果的传递,拓展WEB程序调用计算机资源的能力。其中Websocket服务器能够是安装到本地的服务框架也可以是设置在云端的Websocket服务器,来配合浏览器执行WEB程序,达到调用计算机资源的目的。具体地,WEB页面在与Websocket服务器建立连接之前需要协商好连接端口,并设置备选端口选取策略和身份验证机制,防止在端口被占用时无法连接。WEB前端程序与Websocket服务器之间建立握手协议,并建立命令回调池。WEB程序发送命令到服务器的具体过程为:开发一个唯一字符串生成装置,构造JSON(Javascript对象表示法)格式的字符串作为消息体,使用生成的唯一字符串作为消息标识,将指令及参数放入消息体,然后将消息发送出去,将用户给的成功及失败回调函数,使用之前生成的唯一字符串作为标识,存入回调命令池。在Websocket服务器端根据WEB程序端的请求发布面向计算机资源的命令后,计算机相应软件或硬件会执行Websocket服务器发出的命令,执行结果会被WEB程序端从回调池中获取的回调方法反映,WEB程序接受到消息之后,从消息体中取出消息标识字符串,从回调命令池中取出回调方法,根据是否成功标识来调用成功回调方法或失败回调方法,将回传的数据作为参数传入方法,在WEB程序端执行回调方法后完成了一次交互。随后通过请求消息体与返回消息体之间的多次数据交换得到对计算机资源的调用结果。其间使用轻量的数据格式(json)进行通讯,传输数据量很小,数据交换过程也通过Websocket服务实现了全双工,拓展了WEB程序对计算机资源的调用能力,省去了应用程序接口的开发过程,提高WEB程序的开发速度,节省人力成本。其中,请求消息体格式如表1所示:
表1
返回消息体格式如表2所示:
表2
回传消息体属性名称 | 消息体属性含义 |
MessageId | 消息标识,用于WEB页面匹配相应的回调方法 |
Result | 布尔值,用于标识执行是否成功 |
Data | 数据,用于存储命令处理器执行的返回值 |
根据本发明第二方面实施例的WEB程序的拓展装置200,优选地,还包括:加载单元210,根据接收到的网页启动指令,启动WEB页面并加载程序模块;服务单元212,根据接收到的调用请求指令,启动Websocket服务器,设置一个命令处理器池。
在该实施例中,在用户启动网页时加载WEB页面和WEB程序模块,其中,程序模块是是一个或多个按用户需求开发的网页插件(包含一组本地服务可执行的命令体的文件),在用户使用WEB程序调用计算机软件或硬件资源时启动Websocket服务器,并将其处理程序设置为处理器池,之后由处理器池负责调用不同的处理器处理WEB程序的命令。
根据本发明第二方面实施例的WEB程序的拓展装置200,优选地,处理单元204具体用于:根据Websocket服务器解析请求消息体,得到命令名称,根据命令名称从命令处理器池中查找到对应的命令处理器,使用请求消息体中的命令参数初始化命令处理器;根据命令处理器执行命令名称的方法体,得到返回值,并根据返回值构造返回消息体,将返回消息体发出。
在该实施例中,当Websocket服务器接受到消息后,尝试使用约定好的消息体格式解析消息,如果解析失败,说明消息体不符合规范,则不处理;如果解析成功,则根据消息的指令名称从命令处理器池中找出对应的命令处理器,使用消息体中传递的参数初始化命令处理器。命令处理器实例化完成之后,执行命令的方法体,获取到方法体返回值,将返回值放入回传消息体,同时将传递过来的消息标识字符串填入回传消息体,序列化为JSON形式字符串,通过建立的连接将JSON形式的消息体回传回去。使WEB程序端能够通过Websocket服务调用计算机的硬件或软件资源,实现WEB程序的能力拓展。
根据本发明第二方面实施例的WEB程序的拓展装置200,优选地,加载单元210具体用于:与Websocket服务器上相应的程序模块进行对比,对程序模块进行更新;将更新后的程序模块注册到命令处理器池。
在该实施例中,获取本地命令模块的列表及版本号与服务器上的进行对比,下载缺少的以及有差异的模块,对本地模块进行更新,并依照命令处理器接口匹配模块中所有的处理器注册到本地的处理器池中。
根据本发明第二方面实施例的WEB程序的拓展装置200,优选地,命令处理器池包括:预置命令处理器和按需开发命令处理器。
在该实施例中,命令处理器池包括多个命令处理器,负责解析并执行各种类型的命令,在服务端一般都设有预置命令处理器,但是为了满足用户的多样化需求,拓展服务端的处理能力和范围,按需开发的命令处理器也加入到服务端命令处理池才能够更好地帮助WEB程序实现相应各自目的。
图3示出了根据本发明实施例的本地服务启动阶段示意图。
如图3所示,这个阶段主要是如何初始化本地服务,将命令模块加载进来,启动步骤主要包括:步骤一,更新命令模块;步骤二,加载命令模块;步骤三,启动服务器。在步骤一中,具体地:获取本地命令模块列表及版本号,与服务器上的进行比对,下载缺少的以及有差异的模块,替换本地模块;如图中所示的服务器端命令处理器池306注册有预置命令处理器302和按需开发命令处理器304,本地端通过对比,将缺少的或者有差异的模块添加或替换至本地命令处理器池310。在步骤二中,具体地:遍历模块文件夹中的所有模块,依照命令处理器接口匹配模块中所有的处理器,注册到装置的本地命令处理器池310中。在步骤三中,具体地:启动本地WebSocket服务器308,将服务器的处理程序设置为处理器池,即服务器端命令处理器池306,之后由处理器池306负责调用不同的处理器处理命令。
图4示出了根据本发明实施例的工作流程示意图。
如图4所示,通过步骤S404和步骤S406分别完成服务启动和页面打开的过程,在Websocket服务器端进行S408更新命令插件并加载,WEB端通过步骤S410加载WEB端程序模块,根据步骤S412、S414和S416建立连接,再经步骤S420执行命令,具体执行什么命令则由WEB端通过步骤S418发送命令至Websocket服务器,在回调池402中进行回调命令的注册,,最后由WEB端通过S422执行回调方法,完成一次交互。
图5示出了根据本发明实施例的命令处理流程示意图。
如图5所示,在命令处理流程中主要解决的问题是:(1)如何发送命令到服务器;(2)服务器如何解析命令并找到相应的命令处理器;(3)命令执行完成后如何返回数据;(4)WEB页面如何处理返回的数据。
对于上述(1):开发一个唯一字符串生成装置,通过步骤S516构造JSON格式的字符串作为消息体,使用生成的唯一字符串作为消息标识,将指令及参数放入消息体,然后将消息发送出去由本地服务506负责接收。将用户给的成功回调函数及失败回调函数,使用之前生成的唯一字符串作为标识,存入回调命令池502。
对于上述(2):当本地服务506接受到消息后,尝试使用约定好的消息体格式解析消息,如果解析失败,说明消息体不符合规范,则不处理;如果解析成功,则通过步骤S518检索命令处理器,即根据消息的指令名称从命令处理器池504中找出对应的命令处理器,使用消息体中传递的参数初始化命令处理器。
对于上述(3):命令处理器实例化完成之后,摄像头508、打印机510、读卡器512或其它设备514通过步骤S520执行命令的方法体,获取到方法体返回值,通过步骤S522将返回值放入回传消息体,同时将传递过来的消息标识字符串填入回传消息体,序列化为JSON形式字符串,通过建立的连接将JSON形式的消息体回传回去。
对于上述(4):WEB端模块接受到消息之后,通过步骤S524从消息体中取出消息标识字符串,从回调命令池502中取出回调方法,根据是否成功标识来调用成功回调方法或失败回调方法,将回传的数据作为参数传入方法,通过步骤S526执行回调方法,完成一次交互。
其中,命令处理器实现过程中的接口方法如表3所示:
表3
以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,能够拓展WEB程序访问计算机资源的能力,使WEB程序能够访问更多的计算机资源,增加WEB应用的应用场景并增强其适应能力。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本发明实施例系统中的单元可以根据实际需要进行合并、划分和删减。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种WEB程序的拓展方法,其特征在于,包括:
连接至Websocket服务器,设置一个回调命令池;
根据调用请求,构造请求消息体,将所述请求消息体发送至所述Websocket服务器;其中,所述Websocket服务器接收所述请求消息体进行相应处理,生成并发出返回消息体,所述请求消息体和所述返回消息体均包括消息标识和命令参数;
接收所述返回消息体,解析出返回值,根据所述返回值从所述回调命令池获取回调方法并执行;
通过所述请求消息体与所述返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,所述执行结果为计算机执行命令而得到的结果;
所述Websocket服务器接收所述请求消息体进行相应处理,生成并发出返回消息体,具体包括:
根据所述Websocket服务器解析所述请求消息体,得到命令名称,根据所述命令名称从所述命令处理器池中查找到对应的命令处理器,使用所述请求消息体中的命令参数初始化所述命令处理器;
根据所述命令处理器执行所述命令名称的方法体,得到所述返回值,并根据所述返回值构造返回消息体,将所述返回消息体发出。
2.根据权利要求1所述的拓展方法,其特征在于,在与Websocket服务器建立连接,初始化一个回调命令池之前,还包括:
根据接收到的网页启动指令,启动WEB页面并加载程序模块;
根据接收到的调用请求指令,启动所述Websocket服务器,设置一个命令处理器池。
3.根据权利要求2所述的拓展方法,其特征在于,所述Websocket服务器接收所述请求消息体进行相应处理,生成并发出返回消息体,具体包括:
根据所述Websocket服务器解析所述请求消息体,得到命令名称,根据所述命令名称从所述命令处理器池中查找到对应的命令处理器,使用所述请求消息体中的命令参数初始化所述命令处理器;
根据所述命令处理器执行所述命令名称的方法体,得到所述返回值,并根据所述返回值构造返回消息体,将所述返回消息体发出。
4.根据权利要求2所述的拓展方法,其特征在于,所述启动WEB页面并加载程序模块,具体包括:
与所述Websocket服务器上相应的程序模块进行对比,对所述程序模块进行更新;
将更新后的程序模块注册到所述命令处理器池。
5.根据权利要求2至4中任一项所述的拓展方法,其特征在于,所述命令处理器池包括:预置命令处理器和按需开发命令处理器。
6.一种WEB程序的拓展装置,其特征在于,包括:
连接单元,连接至Websocket服务器,设置一个回调命令池;
处理单元,根据调用请求,构造请求消息体,将所述请求消息体发送至所述Websocket服务器;其中,所述Websocket服务器接收所述请求消息体进行相应处理,生成并发出返回消息体,所述请求消息体和所述返回消息体均包括消息标识和命令参数;
交互单元,接收所述返回消息体,解析出返回值,根据所述返回值从所述回调命令池获取回调方法并执行;
结果单元,通过所述请求消息体与所述返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,所述执行结果为计算机执行指令而得到的结果;
所述处理单元,具体用于:
根据所述Websocket服务器解析所述请求消息体,得到命令名称,根据所述命令名称从所述命令处理器池中查找到对应的命令处理器,使用所述请求消息体中的命令参数初始化所述命令处理器;
根据所述命令处理器执行所述命令名称的方法体,得到所述返回值,并根据所述返回值构造返回消息体,将所述返回消息体发出。
7.根据权利要求6所述的拓展装置,其特征在于,还包括:
加载单元,根据接收到的网页启动指令,启动WEB页面并加载程序模块;
服务单元,根据接收到的调用请求指令,启动所述Websocket服务器,设置一个命令处理器池。
8.根据权利要求7所述的拓展装置,其特征在于,所述加载单元,具体用于:
与所述Websocket服务器上相应的程序模块进行对比,对所述程序模块进行更新;
将更新后的程序模块注册到所述命令处理器池。
9.根据权利要求7或8所述的拓展装置,其特征在于,所述命令处理器池包括:预置命令处理器和按需开发命令处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611115660.XA CN108170536B (zh) | 2016-12-07 | 2016-12-07 | Web程序的拓展方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611115660.XA CN108170536B (zh) | 2016-12-07 | 2016-12-07 | Web程序的拓展方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170536A CN108170536A (zh) | 2018-06-15 |
CN108170536B true CN108170536B (zh) | 2023-07-04 |
Family
ID=62526099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611115660.XA Active CN108170536B (zh) | 2016-12-07 | 2016-12-07 | Web程序的拓展方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170536B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147592A (zh) * | 2019-12-27 | 2020-05-12 | 深圳市丰润达科技有限公司 | 通过json管理交换机的实现方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324900A (zh) * | 2008-07-30 | 2008-12-17 | 金蝶软件(中国)有限公司 | 一种打开图形使用者界面的方法、装置及系统 |
CN103168301A (zh) * | 2010-08-10 | 2013-06-19 | 谷歌公司 | 向Web应用透露资源能力 |
CN103957249A (zh) * | 2014-04-23 | 2014-07-30 | 华为终端有限公司 | 一种遥控方法、服务器、控制设备及系统 |
CN104301443A (zh) * | 2014-10-09 | 2015-01-21 | 百度在线网络技术(北京)有限公司 | 一种在web页面上调用端能力接口的方法和系统 |
CN105610605A (zh) * | 2015-12-18 | 2016-05-25 | 成都广达新网科技股份有限公司 | 一种消息反向推送、网管系统报警及状态更新的方法 |
CN105933766A (zh) * | 2016-01-21 | 2016-09-07 | 上海东方明珠新媒体股份有限公司 | 基于机顶盒的WebOS系统及机顶盒 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9774652B2 (en) * | 2013-12-13 | 2017-09-26 | Sap Se | Systems to provide database updates |
-
2016
- 2016-12-07 CN CN201611115660.XA patent/CN108170536B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324900A (zh) * | 2008-07-30 | 2008-12-17 | 金蝶软件(中国)有限公司 | 一种打开图形使用者界面的方法、装置及系统 |
CN103168301A (zh) * | 2010-08-10 | 2013-06-19 | 谷歌公司 | 向Web应用透露资源能力 |
CN103957249A (zh) * | 2014-04-23 | 2014-07-30 | 华为终端有限公司 | 一种遥控方法、服务器、控制设备及系统 |
CN104301443A (zh) * | 2014-10-09 | 2015-01-21 | 百度在线网络技术(北京)有限公司 | 一种在web页面上调用端能力接口的方法和系统 |
CN105610605A (zh) * | 2015-12-18 | 2016-05-25 | 成都广达新网科技股份有限公司 | 一种消息反向推送、网管系统报警及状态更新的方法 |
CN105933766A (zh) * | 2016-01-21 | 2016-09-07 | 上海东方明珠新媒体股份有限公司 | 基于机顶盒的WebOS系统及机顶盒 |
Also Published As
Publication number | Publication date |
---|---|
CN108170536A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110198247B (zh) | 接口测试方法及系统 | |
RU2648966C2 (ru) | Устройство и способ для обработки множества открытых api | |
CN109922158A (zh) | 基于微服务的数据处理方法、装置、介质及电子设备 | |
CN108776592B (zh) | 一种页面构建的方法、装置、设备及存储介质 | |
WO2015100646A1 (zh) | 软件架构的实现方法和实现平台 | |
CN112995269B (zh) | 数据处理方法、计算机设备以及可读存储介质 | |
CN110532182B (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
CN111858083A (zh) | 一种远程服务的调用方法、装置、电子设备及存储介质 | |
CN104123125A (zh) | 网页资源的获取方法及装置 | |
CN111367690A (zh) | 一种支持组合api服务调用方法及装置 | |
CN111200523A (zh) | 中台系统配置方法、装置、设备及存储介质 | |
CN109600381B (zh) | 一种接口适配方法、装置及系统 | |
CN106027365A (zh) | 一种信息交互的方法及装置 | |
CN108170536B (zh) | Web程序的拓展方法和装置 | |
CN113691618A (zh) | 消息通知方法、装置、消息中心及存储介质 | |
CN109672732B (zh) | 一种接口适配方法、装置及系统 | |
EP2445171A1 (en) | File transfer protocol client and implementing method thereof | |
CN112667204A (zh) | 微服务应用的数据处理方法、装置和计算机设备 | |
CN112214701A (zh) | 页面的展示方法及系统、存储介质、电子装置 | |
CN114090145B (zh) | 页面跳转的确定方法及装置、存储介质、电子装置 | |
CN113190565B (zh) | 数据更新方法及装置、存储介质及电子装置 | |
CN111711639B (zh) | 终端、数据传输方法、系统、和计算机可读存储介质 | |
CN109086145B (zh) | 数据生成方法、装置及计算机存储介质 | |
CN109634647B (zh) | 大型前端项目的构建方法及系统 | |
CN114489754A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20240202 Granted publication date: 20230704 |
|
PP01 | Preservation of patent right |