一种数据通信方法和装置与流程

文档序号:14747470发布日期:2018-06-22 00:01阅读:176来源:国知局
本发明涉及互联网技术,特别涉及一种数据通信方法和装置。
背景技术
:插件(plugin)是遵循一定规范的应用程序接口(ApplicationProgrammingInterface,API)编写出来的程序,用于增强或扩展软件功能;很多客户端软件也需要插件才能正常运行。例如在浏览器中运行某个网页时,通常是由浏览器来调用执行相关插件该网页才能正常运行。因此,插件在开发时要遵循浏览器所规定的API规范,这样浏览器才能调用插件。但是随着浏览器技术的不断发展,很多浏览器开始采用其各自的私有插件规范,即使同一功能的插件,应用厂商也不得不分别开发对应不同浏览器的插件版本,工作量巨大。技术实现要素:有鉴于此,本发明提供一种数据通信方法和装置,目的是实现插件对各个浏览器的兼容。具体地,本发明是通过如下技术方案实现的:第一方面,提供一种数据通信方法,所述方法包括:接收浏览器发送的目标页面的访问请求;与所述浏览器建立第二通道,与客户端软件建立第一通道,并保存所述第一通道与第二通道的对应关系;通过所述第一通道向客户端软件发送插件执行指示,所述插件执行指示用于指示所述客户端软件运行目标插件,并通过所述第二通道指示浏览器处理目标页面的其他页面功能;接收所述客户端软件通过所述第一通道反馈的插件运行结果数据;处理所述运行结果数据;将所述处理结果通过第二通道发送至所述浏览器。第二方面,提供一种数据通信方法,所述方法包括:接收服务器通过第一通道发送的插件执行指示,所述插件执行指示用于指示运行目标插件;根据所述插件执行指示调用目标插件运行;将运行结果数据通过所述第一通道反馈至服务器进行处理,以使得服务器将处理结果反馈至浏览器。第三方面,提供一种数据通信装置,所述装置包括:访问请求接收单元,用于接收浏览器发送的目标页面的访问请求;通道建立单元,用于与所述浏览器建立第二通道,与客户端软件建立第一通道,并保存所述第一通道与第二通道的对应关系;指示发送单元,用于通过所述第一通道向客户端软件发送插件执行指示,所述插件执行指示用于指示所述客户端软件运行目标插件,并通过所述第二通道指示浏览器处理目标页面的其他页面功能;反馈接收单元,用于接收所述客户端软件通过所述第一通道反馈的插件运行结果数据;数据处理单元,用于处理所述运行结果数据;结果转发单元,用于将所述处理结果通过第二通道发送至所述浏览器。第四方面,提供一种客户端装置,所述装置包括:指令接收单元,用于接收服务器通过第一通道发送的插件执行指示,所述插件执行指示用于指示运行目标插件;插件处理单元,用于根据所述指令接收单元接收的插件执行指示调用目标插件运行;结果反馈单元,用于将运行结果数据通过所述第一通道反馈至服务器进行处理,以使得服务器将处理结果反馈至浏览器。本发明实施例的数据通信方法和装置,通过由客户端软件调用执行插件,使得即使浏览器不能运动插件也可以由客户端软件自己执行,从而实现了对各个浏览器的兼容。附图说明图1是本发明实施例提供的数据通信方法的应用场景;图2是本发明实施例提供的数据通信方法的流程图;图3是本发明实施例提供的数据通信方法的原理示意图;图4是本发明实施例提供的一种客户端装置的结构示意图;图5是本发明实施例提供的另一种客户端装置的结构示意图;图6是本发明实施例提供的一种数据通信装置的结构示意图;图7是本发明实施例提供的另一种数据通信装置的结构示意图。具体实施方式本发明实施例的数据通信方法,可以适用于客户端软件需要插件(plugin)协助运行的场景,需要说明的是,该方法同样适用于扩展(extension)、控件等其他用于扩展软件功能的程序,如下的实施例以插件为例。图1示例了一种该数据通信方法的应用场景(但并不局限于该场景,其他类似的应用都可以采用本发明实施例的方法),假设在运行客户端软件时需要通过浏览器11(该浏览器可以是firefox、IE等任一浏览器)打开某个网页,本实施例中以在浏览器中运行“网上银行”为例。在使用网上银行的过程中可能会需要输入密码,图1示出了一个需要输入密码的页面,该页面可以称为“目标页面”,在该页面中假设椭圆框21所指示的登录密码输入区域是由密码控件来管理的,只有运行该密码控件才能在图1的页面中正常显示该密码输入框,并且接收用户的输入密码(设置控件通常是为了保证密码安全)。本实施例将密码控件称为“目标插件”,那么也就是说,图1所示的目标页面的运行是需要目标插件的,只有运行目标插件,目标页面中的对应密码输入的功能才能正常执行。传统方式中,目标插件是由浏览器11调用执行,使得正常运行插件对应的页面区域;而本实施例的数据通信方法,将描述在目标插件不符合浏览器11的插件规范的情况下如何使得图1中的目标页面正常运行,此时,浏览器11是不能够调用目标插件的。图2示出了该方法的流程:201、服务器通过第一通道向客户端软件发送插件执行指示,所述插件执行指示用于指示运行目标插件;并且,通过与第一通道对应的第二通道指示浏览器处理目标页面的其他页面功能;其中,服务器在接收到浏览器发送的目标页面的访问请求时,与客户端软件建立第一通道,与该浏览器建立第二通道,并且保存了第一通道和第二通道的对应关系。202、客户端软件根据所述插件执行指示调用目标插件运行;203、客户端软件将运行结果数据通过第一通道反馈至服务器进行处理;204、服务器处理运行结果数据,并将处理结果通过第二通道发送至浏览器。下面对图2所示的流程更为具体的进行说明:首先,为了使得本发明实施例的数据通信方法容易理解,以图3简单示出该方法的原理,其中,仍以图1所示的网银客户端为例,浏览器相当于一个负责页面解析和显示的工具,服务器是网银对应的网银服务器。在显示图1所示的目标页面时,是由服务器向浏览器发送处理指示,并携带需要浏览器显示的目标页面的页面文件数据,浏览器接收到该数据后通过浏览器内核解析网页语法,并渲染和展示目标页面。参见图3所示,传统方式中,对于需要插件协助的页面,服务器在向浏览器发处理指示时,也会同时指示浏览器调用目标插件,这样才能显示图1的完整的目标页面。但是对于插件不符合浏览器API规范的情况,就需要采用本发明实施例的方式,服务器会将调用运行插件的任务指示给客户端软件去完成,相当于由客户端软件替代浏览器执行。具体的,结合图1和图3来看,在图1所示的目标页面中,可以将该页面功能分为两个部分,第一部分是椭圆框12对应的页面功能,这部分需要运行目标插件才能显示该输入框并接收用户输入密码;第二部分是其他的页面功能,比如图1中所示的显示工具栏“文件、编辑、收藏夹等”、以及显示页面中的图画13等其他的页面内容,这些功能是浏览器无需依赖目标插件即可实现的功能。基于此,服务器在指示运行目标页面时,将分开指示,如图3所示的,指示客户端软件来运行目标插件,并指示浏览器仍然运行其他页面内容。需要说明的是,尽管服务器分开指示目标页面的两部分运行,但是服务器自身记录有这两部分的对应关系,比如“客户端软件运行的目标插件对应的页面部分,是浏览器所运行的目标页面的一部分”;并且,客户端软件在运行插件接收用户的输入密码后,会将密码传输至服务器,服务器对密码进行处理(比如密码验证等)后,可以指示浏览器显示“登录成功”,从而将两部分联系在一起。上述简单说明了该数据通信方法的大致原理,在此基础上,如下详细描述图3中所示的客户端软件和浏览器与服务器之间连接的建立过程,以及在页面显示时的交互流程,包括:本实施例中,客户端软件可以监听网络通信,具体是监听浏览器与服务器之间的通信。比如,在IE浏览器中打开某网上银行的网站,该打开网上银行页面的过程(此时假设该页面是不需要插件运行的页面,比如首页)就需要浏览器与网银服务器进行通信,浏览器向服务器发送页面(该页面可以称为目标页面)的访问请求;同时,客户端软件可以监听该浏览器与服务器的通信过程。具体的,该浏览器是支持HTML5的浏览器,服务器在返回给浏览器页面数据时,该页面数据中包含一段websocket的HTML5代码,浏览器在解析该页面后,与服务器之间通过WebSocket建立连接。WebSocket是HTML5的一种协议,实现了浏览器与服务器的全双工通信。浏览器通过websocket向服务器发送通道获取请求,服务器收到该请求后,分配给浏览器通道信息和通道标识,该通道信息例如包括:服务器地址和服务器端口;该通道标识例如是Key。本实施例可以将浏览器与服务器之间的通道称为第二通道,用L2表示,并将服务器分配给该通道的Key简称为K2。服务器可以一定周期的方式将上述信息反馈至浏览器。客户端软件在监听浏览器与服务器之间通信的过程中,可以获取到上述的通道信息和通道标识,比如获取到服务器的地址和端口。客户端软件将根据该通道信息,主动向服务器发送通道建立请求,请求服务器分配一个与客户端软件之间连接的通道,并且,客户端软件会在该请求中携带上述的通道标识K2。服务器接收到客户端软件的请求后,将建立一条与客户端软件之间的连接通道,本实施例称为第一通道,可以用L1表示。并且,服务器根据客户端软件发送的请求中携带的通道标识K2,确定该第一通道与第二通道是对应的,建立第一通道和第二通道的对应关系。服务器可以记录类似如下表1的信息,记录第一通道、第二通道和通道标识的映射关系,或者也可以只记录第二通道和通道标识的对应:表1第一通道通道标识第二通道L1K2L2无论是哪种对应关系的记录方式,都需要使得服务器在后续的页面处理过程中获知该第一通道和第二通道的绑定关系,因为服务器还要负责客户端软件与浏览器之间的数据转发,客户端软件运行插件后的运行数据需要服务器反馈至浏览器,这属于同一页面的部分功能部分之间的联系,参见后续的实施例部分。此外,需要说明的是,服务器可以知道客户端软件请求创建第一通道的作用,该作用是,在需要运行页面插件时,服务器通过该第一通道指示客户端软件调用插件,不再指示浏览器调用。服务器获知该作用的方式可以是灵活设定的,比如,可以在客户端软件发送的通道建立请求中携带某种用于指示上述作用的标识,或者,也可以在服务器侧预先设定,接收到客户端软件请求建立通道时是用于上述作用。接着,在服务器创建好上述的第一通道和第二通道,并记录两者之间的对应关系后,服务器仍然继续处理客户端软件的运行控制。客户端软件在运行过程中的哪个步骤显示何种页面,是由服务器来控制的,由服务器来指示浏览器来进行页面显示,浏览器是根据服务器的指令来解析并显示页面。同样的,对于图1所示的目标页面,假设在某一个时刻,服务器检测到下一步要执行的是该目标页面的显示,并且该目标页面需要运行目标插件。则服务器可以通过第一通道向客户端软件发送插件执行指示,该指示用于指示运行目标插件,可以携带该目标插件的插件标识,以使得客户端软件根据插件标识找到该插件进行调用。而对于目标页面中的其他页面部分的显示,仍然由浏览器处理,服务器将该其他页面部分的数据通过第二通道发送至浏览器指示处理。具体的,浏览器在接收到服务器发送的页面数据后,解析和显示,例如是显示图1中的密码输入框之外的页面内容,比如页面工具栏、页面中图案等;而客户端软件在接收到服务器的指示后,根据插件标识找到对应的插件调用执行,通过执行该插件使得密码输入框正常显示,并且能接收用户的输入密码。需要说明的是,客户端软件所执行的目标插件可以是已经安装好的,该目标插件是在客户端软件的配置文件中预先定义好的,客户端软件知道插件的安装位置,从该安装位置获取插件数据执行。客户端软件在运行目标插件后,还要将运行结果数据通过第一通道反馈至服务器进行处理。比如,客户端软件运行插件后显示密码输入框,接收用户的输入密码,并且客户端软件将接收到的密码数据通过第一通道传输至服务器。服务器对该密码数据可以进行密码验证等处理,验证密码是否正确。如果验证通过,则在目标页面需要显示“验证通过”或者“登录成功”类似的提示,具体可以是,服务器在验证密码通过后,通知浏览器在目标页面显示登录成功,该登录成功页面显示的指示就相当于对客户端软件反馈密码数据的处理结果。更为具体的,服务器可以是按照如下方式联系客户端软件和浏览器的:上述的过程中,客户端软件在通过第一通道向服务器发送密码数据时,将携带K2,该K2即客户端软件监听网络通信时获取的。服务器在验证通过时,根据K2以及之前记录的对应关系,比如表1,查找到与K2对应的第二通道L2,通过该L2指示浏览器显示登录成功的信息。此外,由上述过程可以看到,该数据通信方法类似于一种客户端软件与浏览器之间的通信,比如客户端软件执行插件程序后,由服务器根据客户端软件运行数据进行处理,并将处理结果反馈至浏览器显示,也就是说,浏览器的显示是结合客户端软件侧插件的运行结果得到的,相当于服务器将客户端软件的数据传递至浏览器。反之,当浏览器需要与客户端软件通信时也可以通过服务器中转,即通过第二通道发送至服务器,再由服务器发送至客户端软件,从而实现客户端软件和浏览器的双向通信。本实施例的数据通信方法,同一插件可以适用于多种浏览器,开发者不再需要开发符合各种浏览器规范的插件版本,只要满足客户端软件能够调用执行该插件即可,相对于传统方式,大大减少了插件开发者的工作量;并且,该方法也提高了业务实现的效率,比如,当某个客户端软件需要升级时,不再需要开发多个版本插件,将能够快速的实现客户端软件的升级,效率得到提高。基于上述的方法实施例,本发明实施例提供了一种客户端装置,该装置运行在客户端软件,使得客户端软件执行上述方法实施例的方法。本实施例对该装置的结构做简单说明,其各个模块的工作原理可以结合参见方法实施例。如图4所示,该装置可以包括:指令接收单元41、插件处理单元42和结果反馈单元43;其中,指令接收单元41,用于接收服务器通过第一通道发送的插件执行指示,该指示用于指示运行目标插件;插件处理单元42,用于根据所述指令接收单元接收的插件执行指示调用目标插件运行;结果反馈单元43,用于将运行结果数据通过所述第一通道反馈至服务器进行处理,以使得服务器将处理结果反馈至浏览器。在图4的基础上,本实施例还提供了图5的另一种装置,其中,该客户端装置还包括:网络监听单元44和通道请求单元45;网络监听单元44,用于监听所述浏览器与服务器之间的通信,获取所述服务器为浏览器分配的第二通道的通道信息和通道标识;通道请求单元45,用于根据所述网络监听单元获取的通道信息向所述服务器发送通道建立请求,所述通道建立请求中携带通道标识,以使得所述服务器创建所述第一通道,并根据通道标识建立第一通道和第二通道的对应关系。本发明实施例还提供了一种数据通信装置,该装置运行在服务器,使得服务器执行上述的方法。如图6所示,该装置可以包括:访问请求接收单元61、通道建立单元62、指示发送单元63、反馈接收单元64、数据处理单元65和结果转发单元66;其中,访问请求接收单元61,用于接收浏览器发送的目标页面的访问请求;通道建立单元62,用于与所述浏览器建立第二通道,与客户端软件建立第一通道,并保存所述第一通道与第二通道的对应关系;指示发送单元63,用于通过所述第一通道向客户端软件发送插件执行指示,所述插件执行指示用于指示所述客户端软件运行目标插件,并通过所述第二通道指示浏览器处理目标页面的其他页面功能;反馈接收单元64,用于接收所述客户端软件通过所述第一通道反馈的插件运行结果数据;数据处理单元65,用于处理所述运行结果数据;结果转发单元66,用于将所述处理结果通过第二通道发送至所述浏览器。在图6的基础上,本实施例还提供了图7的另一种装置,其中,在该装置中,通道建立单元62可以包括:通道请求子单元621、通道创建子单元622和通道关系子单元623;其中,通道请求子单元621,用于接收客户端软件发送的通道建立请求,所述通道建立请求中携带通道标识;通道创建子单元622,用于根据所述通道建立请求创建所述第一通道;通道关系子单元623,用于根据通道标识建立第一通道和第二通道的对应关系。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1