CN108170536A - Web程序的拓展方法和装置 - Google Patents

Web程序的拓展方法和装置 Download PDF

Info

Publication number
CN108170536A
CN108170536A CN201611115660.XA CN201611115660A CN108170536A CN 108170536 A CN108170536 A CN 108170536A CN 201611115660 A CN201611115660 A CN 201611115660A CN 108170536 A CN108170536 A CN 108170536A
Authority
CN
China
Prior art keywords
message body
command
pond
request message
processor
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.)
Granted
Application number
CN201611115660.XA
Other languages
English (en)
Other versions
CN108170536B (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.)
Medical Information Technology Co Ltd Of Beijing University
Original Assignee
Medical Information Technology Co Ltd Of Beijing University
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 Medical Information Technology Co Ltd Of Beijing University filed Critical Medical Information Technology Co Ltd Of Beijing University
Priority to CN201611115660.XA priority Critical patent/CN108170536B/zh
Publication of CN108170536A publication Critical patent/CN108170536A/zh
Application granted granted Critical
Publication of CN108170536B publication Critical patent/CN108170536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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程序的拓展装置。
本发明的第一方面提出了一种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 (10)

1.一种WEB程序的拓展方法,其特征在于,包括:
连接至Websocket服务器,设置一个回调命令池;
根据调用请求,构造请求消息体,将所述请求消息体发送至所述Websocket服务器;其中,所述Websocket服务器接收所述请求消息体进行相应处理,生成并发出返回消息体,所述请求消息体和所述返回消息体均包括消息标识和命令参数;
接收所述返回消息体,解析出返回值,根据所述返回值从所述回调命令池获取回调方法并执行;
通过所述请求消息体与所述返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,所述执行结果为计算机执行命令而得到的结果。
2.根据权利要求1所述的拓展方法,其特征在于,在所述与Websocket服务器建立连接,初始化一个回调命令池之前,还包括:
根据接收到的网页启动指令,启动WEB页面并加载程序模块;
根据接收到的调用请求指令,启动所述Websocket服务器,设置一个命令处理器池。
3.根据权利要求2所述的拓展方法,其特征在于,所述Websocket服务器接收所述请求消息体进行相应处理,生成并发出返回消息体,具体包括:
根据所述Websocket服务器解析所述请求消息体,得到命令名称,根据所述命令名称从所述命令处理器池中查找到对应的命令处理器,使用所述请求消息体中的命令参数初始化所述命令处理器;
根据所述命令处理器执行所述命令名称的方法体,得到所述返回值,并根据所述返回值构造返回消息体,将所述返回消息体发出。
4.根据权利要求2所述的拓展方法,其特征在于,所述启动WEB页面并加载程序模块,具体包括:
与所述Websocket服务器上相应的程序模块进行对比,对所述程序模块进行更新;
将更新后的程序模块注册到所述命令处理器池。
5.根据权利要求2至4中任一项所述的拓展方法,其特征在于,所述命令处理器池包括:预置命令处理器和按需开发命令处理器。
6.一种WEB程序的拓展装置,其特征在于,包括:
连接单元,连接至Websocket服务器,设置一个回调命令池;
处理单元,根据调用请求,构造请求消息体,将所述请求消息体发送至所述Websocket服务器;其中,所述Websocket服务器接收所述请求消息体进行相应处理,生成并发出返回消息体,所述请求消息体和所述返回消息体均包括消息标识和命令参数;
交互单元,接收所述返回消息体,解析出返回值,根据所述返回值从所述回调命令池获取回调方法并执行;
结果单元,通过所述请求消息体与所述返回消息体之间的实时数据交换得到计算机资源的执行结果,其中,所述执行结果为计算机执行指令而得到的结果。
7.根据权利要求6所述的拓展装置,其特征在于,还包括:
加载单元,根据接收到的网页启动指令,启动WEB页面并加载程序模块;
服务单元,根据接收到的调用请求指令,启动所述Websocket服务器,设置一个命令处理器池。
8.根据权利要求7所述的拓展装置,其特征在于,所述处理单元,具体用于:
根据所述Websocket服务器解析所述请求消息体,得到命令名称,根据所述命令名称从所述命令处理器池中查找到对应的命令处理器,使用所述请求消息体中的命令参数初始化所述命令处理器;
根据所述命令处理器执行所述命令名称的方法体,得到所述返回值,并根据所述返回值构造返回消息体,将所述返回消息体发出。
9.根据权利要求7所述的拓展装置,其特征在于,所述加载单元,具体用于:
与所述Websocket服务器上相应的程序模块进行对比,对所述程序模块进行更新;
将更新后的程序模块注册到所述命令处理器池。
10.根据权利要求7至9中任一项所述的拓展装置,其特征在于,所述命令处理器池包括:预置命令处理器和按需开发命令处理器。
CN201611115660.XA 2016-12-07 2016-12-07 Web程序的拓展方法和装置 Active CN108170536B (zh)

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 true CN108170536A (zh) 2018-06-15
CN108170536B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147592A (zh) * 2019-12-27 2020-05-12 深圳市丰润达科技有限公司 通过json管理交换机的实现方法、装置及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
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页面上调用端能力接口的方法和系统
US20150169648A1 (en) * 2013-12-13 2015-06-18 Florian Foebel Systems to provide database updates
CN105610605A (zh) * 2015-12-18 2016-05-25 成都广达新网科技股份有限公司 一种消息反向推送、网管系统报警及状态更新的方法
CN105933766A (zh) * 2016-01-21 2016-09-07 上海东方明珠新媒体股份有限公司 基于机顶盒的WebOS系统及机顶盒

Patent Citations (7)

* Cited by examiner, † Cited by third party
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应用透露资源能力
US20150169648A1 (en) * 2013-12-13 2015-06-18 Florian Foebel Systems to provide database updates
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系统及机顶盒

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147592A (zh) * 2019-12-27 2020-05-12 深圳市丰润达科技有限公司 通过json管理交换机的实现方法、装置及存储介质

Also Published As

Publication number Publication date
CN108170536B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
CN108510389B (zh) 基于区块链的智能合约调用方法、设备及可读存储介质
CN110198247B (zh) 接口测试方法及系统
JP6166467B2 (ja) ブルートゥース通信方法及びブルートゥース通信設備
CN107332750A (zh) 一种业务部署方法、装置以及网元
CN107770269B (zh) 一种服务响应方法及其终端
CN110417766A (zh) 一种协议解析的方法和装置
CN106789569A (zh) 分布式系统中的持久个人消息收发
CN110502212A (zh) 一种面向多语言的高并发在线开发支撑方法
CN103729189B (zh) 基于lua的播放协议转换方法、系统、终端
CN108259598A (zh) 一种基于异构融合及云解析技术的感知设备统一接入方法
CN108229704A (zh) 用于推送信息的方法和装置
CN110187912A (zh) 一种节点选择方法和装置
CN110222280A (zh) 用于分享的数据处理方法及装置
CN107273140A (zh) 脚手架管理方法、装置及电子设备
CN1973282A (zh) 用于管理针对集群配置的改变的系统和方法
CN105989345A (zh) 图像匹配发现好友的方法和装置
CN115437808A (zh) 联邦学习平台之间的互通方法、装置、设备、介质及产品
CN114327349B (zh) 智能卡片的确定方法及装置、存储介质、电子装置
CN110248030A (zh) 短信补偿机制的测试方法、装置、设备及存储介质
CN109669678A (zh) 模板引擎整合方法、装置、电子设备及存储介质
CN108170536A (zh) Web程序的拓展方法和装置
CN109672718A (zh) 系统间的文件传递方法、服务器、存储介质及装置
CN109344351A (zh) 网页加载方法、中间服务器和网页加载系统
CN107968798A (zh) 一种网管资源标签获取方法、缓存同步方法、装置及系统
CN105005678B (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