一种web网页应用与本地原生应用程序通信的装置及方法与流程



1.本发明具体涉及一种web网页应用与本地原生应用程序通信的装置及方法,属于浏览器技术领域。


背景技术:



2.web应用程序是基于html5、css、javascript三种基本技术创建的基于浏览器的应用程序,它最重要的特点是运行在浏览器的沙箱空间中,这个运行空间是一个受限环境,web应用程序被限制了只能访问被分配的有限资源,同时外部应用程序也被限制了对这个空间的访问。本地原生应用程序是指在本地操作系统中运行的应用程序,它们包括windows、android、ios、鸿蒙等操作系统中运行的应用程序。这些本地原生应用程序与在相同操作系统环境下运行的浏览器属于平等类型应用,基于上述沙箱原理,它们也无法直接访问浏览器中运行的web应用程序。
3.但随着web应用的流行,大量的业务构建在web应用程序上,它们与本地原生应用程序之间的数据通信的需求也越来越多。当前它们之间的通信普遍采用以下几种方式:1)利用浏览器支持的activex、ocx、flash控件进行数据交互,但这种方式因为侵入了浏览器沙箱有很大安全隐患,现在主流浏览器已经再不支持。
4.2)利用远程或本地的http服务器或中转代理服务应用程序进行信息交换,这种方式虽然达到的目的,但会导致整个系统的网元数量、复杂性和系统开销代价都增加了。具体缺点是:本地原生应用需要具备完整的http能力才能完成功能,增加了实现代价,出问题的可能也增加了;http属于单工通信协议,它准许的数据传输方向是单向的,如要同时进行双向数据传输需要通信双方都建立http服务才能达成传输功能;http属于短连接协议(每次传输完成即释放资源),如果要进行持续传输(即保持长连接)必须频繁地、周期性地与服务器保持心跳连接,系统开销大;3)利用url劫持技术,在本地原生应用程序上监听url,web应用程序利用约定好协议号和参数向本地原生应用发送url,本地解析到该约定好的协议号后继续解析参数从而获得传输的内容。但这一方式可以传输的数据非常有效,只适合传输少量的参数信息。
5.4)利用jsbridge技术来传输数据,jsbridge技术本质上也是url劫持技术,不同的是为了使用方便,它做了合理的封装增添了一些功能注入的方法,丰富了功能提高了可用性。其优点和缺点与上述url劫持方案类似。
6.本技术人发现现有技术至少存在以下技术问题:1、现有技术中,利用浏览器支持的activex、ocx、flash控件进行数据交互易造成安全问题;2、现有技术中,利用远程或本地的http服务器或中转代理服务应用程序进行信息交换实现复杂,系统开销大;3、现有技术中,利用url劫持技术进行通信传输数据量小,传输效率低。


技术实现要素:



7.本发明的目的在于提供一种web网页应用与本地原生应用程序通信的装置及方法,以解决现有技术中,利用浏览器支持的activex、ocx、flash控件进行数据交互易造成安全问题;利用远程或本地的http服务器或中转代理服务应用程序进行信息交换实现复杂,系统开销大;利用url劫持技术进行通信传输数据量小,传输效率低的技术问题。
8.为实现上述目的,本发明提供了以下技术方案:本发明提供了一种web网页应用与本地原生应用程序通信的装置,所述装置包括websocket服务端、websocket客户端,所述websocket服务端包括服务端服务构建器、服务端数据收发器、服务端通道标识模块,所述websocket客户端包括客户端服务构建器、客户端数据收发器、客户端通道标识模块,所述服务端服务构建器、客户端服务构建器,用于创建所述websocket服务端、websocket客户端之间的连接通道;所述服务端数据收发器、客户端数据收发器,用于通过所述连接通道收发数据;所述服务端通道标识模块,用于保存所述websocket服务端的连接通道标识;所述客户端通道标识模块,用于保存所述websocket客户端的连接通道标识。
9.进一步地,所述服务端服务构建器创建所述websocket服务端、websocket客户端之间的连接通道的操作包括:以本地发现地址0.0.0.0和所述websocket服务端、websocket客户端约定的端口号为组合创建websocket服务端实例;启动websocket监听服务;所述websocket服务端、websocket客户端之间建立连接后,将所述websocket服务端、websocket客户端之间连接通道的连接通道标识保存于所述服务端通道标识模块。
10.进一步地,所述客户端服务构建器创建所述websocket客户端、websocket服务端之间的连接通道的操作包括:以本地环回地址127.0.0.1和所述websocket服务端、websocket客户端约定的端口号为组合建立websocket客户端实例;所述websocket客户端实例向以本地发现地址0.0.0.0和约定的端口号为组合创建的websocket服务端实例请求连接;所述websocket客户端、websocket服务端之间建立连接后,将所述websocket服务端、websocket客户端之间连接通道的连接通道标识保存于所述客户端通道标识模块。
11.进一步地,所述通道标识模块可以保存多个连接通道标识用以实现多通道通信,所述连接通道标识包括实例句柄。
12.进一步地,所述websocket服务端、websocket客户端均包括:连接事件响应器:用于捕获所述websocket服务端、websocket客户端之间的连接事件,并提供响应连接事件的处理函数实现入口;关闭事件响应器:用于捕获所述websocket服务端、websocket客户端之间的连接关闭事件,并提供响应关闭事件的处理函数实现入口;出错事件响应器:用于捕获websocket实例运行时出错事件,并提供响应出错事件
的处理函数实现入口。
13.进一步地,所述服务端数据收发器收发数据的操作包括:获取所述服务端通道标识模块保存的实例句柄;所述服务端数据收发器使用实例句柄,通过实例句柄获得对应的所述websocket服务端、websocket客户端之间的连接通道的操作能力,从而向所述websocket客户端收发数据;所述客户端数据收发器收发数据的操作包括:获取所述客户端通道标识模块保存的实例句柄;所述客户端数据收发器使用实例句柄,通过实例句柄获得对应的所述websocket服务端、websocket客户端之间的连接通道的操作能力,从而向所述websocket服务端收发数据。
14.进一步地,所述服务端数据收发器、客户端数据收发器接收到数据后的操作包括:捕获收到数据事件;将收到的数据交由数据处理函数处理。
15.本发明还提供了一种web网页应用与本地原生应用程序通信的方法,基于上述的一种web网页应用与本地原生应用程序通信的装置实现,所述方法的步骤包括:s1,服务端服务构建器、客户端服务构建器创建所述websocket服务端、websocket客户端的websocket服务并建立它们之间的连接通道;s2,构建服务端数据收发器、服务端连接事件响应器、服务端关闭事件响应器、服务端出错事件响应器,构建客户端数据收发器、客户端连接事件响应器、客户端关闭事件响应器、客户端出错事件响应器,连接事件响应器用于捕获所述websocket服务端、websocket客户端之间的连接事件,并提供响应连接事件的处理函数实现入口;关闭事件响应器用于捕获所述websocket服务端、websocket客户端之间的连接关闭事件,并提供响应关闭事件的处理函数实现入口;出错事件响应器用于捕获websocket实例运行时出错事件,并提供响应出错事件的处理函数实现入口;s3,服务端通道标识模块保存websocket服务端的连接通道标识,客户端通道标识模块保存所述websocket客户端的连接通道标识;s4,服务端数据收发器、客户端数据收发器通过连接通道收发数据。
16.进一步地,步骤s1的子步骤包括:s11,服务端服务构建器以本地发现地址0.0.0.0和所述websocket服务端、websocket客户端约定的端口号为组合创建websocket服务端实例,客户端服务构建器以本地环回地址127.0.0.1和所述websocket服务端、websocket客户端约定的端口号为组合建立websocket客户端实例;s12,服务端服务构建器启动websocket监听服务,websocket客户端实例向websocket服务端实例请求连接;s13,websocket服务端、websocket客户端之间建立连接通道。
17.进一步地,步骤s4的子步骤包括:s41,需发送数据的数据收发器获取所需连接通道标识,所述连接通道标识包括实例句柄;
s42,需发送数据的数据收发器使用实例句柄,通过实例句柄获得对应的websocket服务端、websocket客户端之间的连接通道的操作能力,从而向需接收数据的数据收发器发送数据;s43,需接收数据的数据收发器捕获收到数据事件;s44,需接收数据的数据收发器将收到的数据交由数据处理函数处理。
18.进一步地,步骤s3中:服务端连接事件响应器捕获所述websocket服务端、websocket客户端之间建立连接事件,保存实例句柄至所述服务端通道标识模块;所述客户端连接事件响应器捕获所述websocket服务端、websocket客户端之间建立连接事件,保存实例句柄至所述客户端通道标识模块。
19.基于上述技术方案,本发明实施例至少可以产生如下技术效果:(1)本发明提供的一种web网页应用与本地原生应用程序通信的装置及方法,采用websocket点对点通信机制,不依赖外部服务器或转发代理实现简单。
20.(2)本发明提供的一种web网页应用与本地原生应用程序通信的装置及方法,利用了websocket全双工通信特性,通信双方可以同时收发信息,效率极高。
21.(3)本发明提供的一种web网页应用与本地原生应用程序通信的装置及方法,在websocket通信过程中只需要一次握手即可建立tcp长连接,系统开销小,传输容量大甚至可以传输视频数据这样的高密度数据。
22.(4)本发明提供的一种web网页应用与本地原生应用程序通信的装置及方法,属于纯应用层实现,不侵入浏览器运行空间兼容性、安全性好。
附图说明
23.图1是本发明实施例的结构示意图;图2是本发明实施例的建立连接实现原理示意图;图3是本发明实施例的数据收发实现原理图;图4是本发明实施例的事件处理实现原理图。
具体实施方式
24.本发明提供了一种web网页应用与本地原生应用程序通信的装置及方法,现结合附图对本发明优选实施例进行详尽说明。
25.本发明提供了一种web网页应用与本地原生应用程序通信的装置,所述装置包括websocket服务端、websocket客户端,所述websocket服务端包括服务端服务构建器、服务端数据收发器、服务端通道标识模块,所述websocket客户端包括客户端服务构建器、客户端数据收发器、客户端通道标识模块,所述服务端服务构建器、客户端服务构建器,用于创建所述websocket服务端、websocket客户端之间的连接通道;所述服务端数据收发器、客户端数据收发器,用于通过所述连接通道收发数据;所述服务端通道标识模块,用于保存所述websocket服务端的连接通道标识;所述客户端通道标识模块,用于保存所述websocket客户端的连接通道标识。
26.进一步地,所述服务端服务构建器创建所述websocket服务端、websocket客户端
之间的连接通道的操作包括:以本地发现地址0.0.0.0和所述websocket服务端、websocket客户端约定的端口号为组合创建websocket服务端实例;启动websocket监听服务;所述websocket服务端、websocket客户端之间建立连接后,将所述websocket服务端、websocket客户端之间连接通道的连接通道标识保存于所述服务端通道标识模块。
27.进一步地,所述客户端服务构建器创建所述websocket客户端、websocket服务端之间的连接通道的操作包括:以本地环回地址127.0.0.1和所述websocket服务端、websocket客户端约定的端口号为组合建立websocket客户端实例;所述websocket客户端实例向以本地发现地址0.0.0.0和约定的端口号为组合创建的websocket服务端实例请求连接;所述websocket客户端、websocket服务端之间建立连接后,将所述websocket服务端、websocket客户端之间连接通道的连接通道标识保存于所述客户端通道标识模块。
28.进一步地,所述通道标识模块可以保存多个连接通道标识用以实现多通道通信,所述连接通道标识包括实例句柄。
29.进一步地,所述websocket服务端、websocket客户端均包括:连接事件响应器:用于捕获所述websocket服务端、websocket客户端之间的连接事件,并提供响应连接事件的处理函数实现入口;关闭事件响应器:用于捕获所述websocket服务端、websocket客户端之间的连接关闭事件,并提供响应关闭事件的处理函数实现入口;出错事件响应器:用于捕获websocket实例运行时出错事件,并提供响应出错事件的处理函数实现入口。
30.进一步地,所述服务端数据收发器收发数据的操作包括:获取所述服务端通道标识模块保存的实例句柄;所述服务端数据收发器使用实例句柄,通过实例句柄获得对应的所述websocket服务端、websocket客户端之间的连接通道的操作能力,从而向所述websocket客户端收发数据;所述客户端数据收发器收发数据的操作包括:获取所述客户端通道标识模块保存的实例句柄;所述客户端数据收发器使用实例句柄,通过实例句柄获得对应的所述websocket服务端、websocket客户端之间的连接通道的操作能力,从而向所述websocket服务端收发数据。
31.进一步地,所述服务端数据收发器、客户端数据收发器接收到数据后的操作包括:捕获收到数据事件;将收到的数据交由数据处理函数处理。
32.本发明还提供了一种web网页应用与本地原生应用程序通信的方法,基于上述的一种web网页应用与本地原生应用程序通信的装置实现,所述方法的步骤包括:s1,服务端服务构建器、客户端服务构建器创建所述websocket服务端、websocket
客户端的websocket服务并建立它们之间的连接通道;s2,构建服务端数据收发器、服务端连接事件响应器、服务端关闭事件响应器、服务端出错事件响应器,构建客户端数据收发器、客户端连接事件响应器、客户端关闭事件响应器、客户端出错事件响应器,连接事件响应器用于捕获所述websocket服务端、websocket客户端之间的连接事件,并提供响应连接事件的处理函数实现入口;关闭事件响应器用于捕获所述websocket服务端、websocket客户端之间的连接关闭事件,并提供响应关闭事件的处理函数实现入口;出错事件响应器用于捕获websocket实例运行时出错事件,并提供响应出错事件的处理函数实现入口;s3,服务端通道标识模块保存websocket服务端的连接通道标识,客户端通道标识模块保存所述websocket客户端的连接通道标识;s4,服务端数据收发器、客户端数据收发器通过连接通道收发数据。
33.进一步地,步骤s1的子步骤包括:s11,服务端服务构建器以本地发现地址0.0.0.0和所述websocket服务端、websocket客户端约定的端口号为组合创建websocket服务端实例,客户端服务构建器以本地环回地址127.0.0.1和所述websocket服务端、websocket客户端约定的端口号为组合建立websocket客户端实例;s12,服务端服务构建器启动websocket监听服务,websocket客户端实例向websocket服务端实例请求连接;s13,websocket服务端、websocket客户端之间建立连接通道。
34.进一步地,步骤s4的子步骤包括:s41,需发送数据的数据收发器获取所需连接通道标识,所述连接通道标识包括实例句柄;s42,需发送数据的数据收发器使用实例句柄,通过实例句柄获得对应的websocket服务端、websocket客户端之间的连接通道的操作能力,从而向需接收数据的数据收发器发送数据;s43,需接收数据的数据收发器捕获收到数据事件;s44,需接收数据的数据收发器将收到的数据交由数据处理函数处理。
35.进一步地,步骤s3中:服务端连接事件响应器捕获所述websocket服务端、websocket客户端之间建立连接事件,保存实例句柄至所述服务端通道标识模块;所述客户端连接事件响应器捕获所述websocket服务端、websocket客户端之间建立连接事件,保存实例句柄至所述客户端通道标识模块。可以理解,本发明是通过本优选实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和本实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和本实施例进行修改以适应具体的情况而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本技术的权利要求范围内的实施例都属于本发明所保护的范围内。

技术特征:


1.一种web网页应用与本地原生应用程序通信的装置,其特征在于,所述装置包括websocket服务端、websocket客户端,所述websocket服务端包括服务端服务构建器、服务端数据收发器、服务端通道标识模块,所述websocket客户端包括客户端服务构建器、客户端数据收发器、客户端通道标识模块,所述服务端服务构建器、客户端服务构建器,用于创建所述websocket服务端、websocket客户端之间的连接通道;所述服务端数据收发器、客户端数据收发器,用于通过所述连接通道收发数据;所述服务端通道标识模块,用于保存所述websocket服务端的连接通道标识;所述客户端通道标识模块,用于保存所述websocket客户端的连接通道标识。2.根据权利要求1所述的一种web网页应用与本地原生应用程序通信的装置,其特征在于,所述服务端服务构建器创建所述websocket服务端、websocket客户端之间的连接通道的操作包括:以本地发现地址0.0.0.0和所述websocket服务端、websocket客户端约定的端口号为组合创建websocket服务端实例;启动websocket监听服务;所述websocket服务端、websocket客户端之间建立连接后,将所述websocket服务端、websocket客户端之间连接通道的连接通道标识保存于所述服务端通道标识模块。3.根据权利要求2所述的一种web网页应用与本地原生应用程序通信的装置,其特征在于,所述客户端服务构建器创建所述websocket客户端、websocket服务端之间的连接通道的操作包括:以本地环回地址127.0.0.1和所述websocket服务端、websocket客户端约定的端口号为组合建立websocket客户端实例;所述websocket客户端实例向以本地发现地址0.0.0.0和约定的端口号为组合创建的websocket服务端实例请求连接;所述websocket客户端、websocket服务端之间建立连接后,将所述websocket服务端、websocket客户端之间连接通道的连接通道标识保存于所述客户端通道标识模块。4.根据权利要求1所述的一种web网页应用与本地原生应用程序通信的装置,其特征在于,所述通道标识模块可以保存多个连接通道标识,所述连接通道标识包括实例句柄。5.根据权利要求1所述的一种web网页应用与本地原生应用程序通信的装置,其特征在于,所述websocket服务端、websocket客户端均包括:连接事件响应器:用于捕获所述websocket服务端、websocket客户端之间的连接事件,并提供响应连接事件的处理函数实现入口;关闭事件响应器:用于捕获所述websocket服务端、websocket客户端之间的连接关闭事件,并提供响应关闭事件的处理函数实现入口;出错事件响应器:用于捕获websocket实例运行时出错事件,并提供响应出错事件的处理函数实现入口。6.根据权利要求4所述的一种web网页应用与本地原生应用程序通信的装置,其特征在于,所述服务端数据收发器收发数据的操作包括:获取所述服务端通道标识模块保存的实例句柄;
所述服务端数据收发器使用实例句柄,通过实例句柄获得对应的所述websocket服务端、websocket客户端之间的连接通道的操作能力,从而向所述websocket客户端收发数据;所述客户端数据收发器收发数据的操作包括:获取所述客户端通道标识模块保存的实例句柄;所述客户端数据收发器使用实例句柄,通过实例句柄获得对应的所述websocket服务端、websocket客户端之间的连接通道的操作能力,从而向所述websocket服务端收发数据。7.根据权利要求4所述的一种web网页应用与本地原生应用程序通信的装置,其特征在于,所述服务端数据收发器、客户端数据收发器接收到数据后的操作包括:捕获收到数据事件;将收到的数据交由数据处理函数处理。8.一种web网页应用与本地原生应用程序通信的方法,基于权利要求1至7任意一项所述的一种web网页应用与本地原生应用程序通信的装置实现,其特征在于,所述方法的步骤包括:s1,服务端服务构建器、客户端服务构建器创建所述websocket服务端、websocket客户端的websocket服务并建立它们之间的连接通道;s2,构建服务端数据收发器、服务端连接事件响应器、服务端关闭事件响应器、服务端出错事件响应器,构建客户端数据收发器、客户端连接事件响应器、客户端关闭事件响应器、客户端出错事件响应器,连接事件响应器用于捕获所述websocket服务端、websocket客户端之间的连接事件,并提供响应连接事件的处理函数实现入口;关闭事件响应器用于捕获所述websocket服务端、websocket客户端之间的连接关闭事件,并提供响应关闭事件的处理函数实现入口;出错事件响应器用于捕获websocket实例运行时出错事件,并提供响应出错事件的处理函数实现入口;s3,服务端通道标识模块保存websocket服务端的连接通道标识,客户端通道标识模块保存所述websocket客户端的连接通道标识;s4,服务端数据收发器、客户端数据收发器通过连接通道收发数据。9.根据权利要求8所述的一种web网页应用与本地原生应用程序通信的方法,其特征在于,步骤s1的子步骤包括:s11,服务端服务构建器以本地发现地址0.0.0.0和所述websocket服务端、websocket客户端约定的端口号为组合创建websocket服务端实例,客户端服务构建器以本地环回地址127.0.0.1和所述websocket服务端、websocket客户端约定的端口号为组合建立websocket客户端实例;s12,服务端服务构建器启动websocket监听服务,websocket客户端实例向websocket服务端实例请求连接;s13,websocket服务端、websocket客户端之间建立连接通道。10.根据权利要求8所述的一种web网页应用与本地原生应用程序通信的方法,其特征在于,步骤s4的子步骤包括:s41,需发送数据的数据收发器获取所需连接通道标识,所述连接通道标识包括实例句柄;s42,需发送数据的数据收发器使用实例句柄,通过实例句柄获得对应的websocket服
务端、websocket客户端之间的连接通道的操作能力,从而向需接收数据的数据收发器发送数据;s43,需接收数据的数据收发器捕获收到数据事件;s44,需接收数据的数据收发器将收到的数据交由数据处理函数处理。11.根据权利要求10所述的一种web网页应用与本地原生应用程序通信的方法,其特征在于,步骤s3中:服务端连接事件响应器捕获所述websocket服务端、websocket客户端之间建立连接事件,保存实例句柄至所述服务端通道标识模块;所述客户端连接事件响应器捕获所述websocket服务端、websocket客户端之间建立连接事件,保存实例句柄至所述客户端通道标识模块。

技术总结


本发明公开了一种web网页应用与本地原生应用程序通信的装置及方法,解决了现有技术中利用浏览器控件通信存在的安全问题;利用HTTP服务器或中转代理服务应用程序进行信息交换带来的实现复杂,系统开销大;利用URL劫持技术存在的传输数据量小、效率低的技术问题。它包括运行在本地应用中的Websocket服务端,运行于web应用中的Websocket客户端,服务端、客户端包括根据约定端口创建Websocket服务的服务构建器、用于保存实例句柄的通道标识模块、事件响应器、使用实例句柄通过连接通道收发数据的数据收发器。本发明不依赖外部服务器或转发代理,实现简单;支持全双工通信方式,通信效率高;系统开销小,传输容量大;不侵入浏览器运行空间兼容性、安全性好。安全性好。安全性好。


技术研发人员:

杨宇彤

受保护的技术使用者:

成都索骥科技有限公司

技术研发日:

2022.11.15

技术公布日:

2023/2/23

本文发布于:2024-09-25 20:23:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/57871.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   服务端   客户端   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议