本申请涉及计算机技术领域,具体而言,本申请涉及一种通讯的建立方法、装置、电子设备及计算机可读存储介质。
背景技术:
浏览器端可以本地服务端之间的建立通讯,使得浏览器端可通过本地服务端访问客户端的本地资源。
目前,浏览器端与本地服务端之间多通过单一的通讯方式建立通讯,但是在实际使用中,单一的通讯方式可能会存在通讯失效的情况,导致浏览器端与本地服务端之间的通讯建立失败,影响浏览器端与本地服务端之间的正常通讯。
技术实现要素:
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种通讯的建立方法,该方法包括:
在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式;
若通讯方式包括至少两种,则基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。
可选地,基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯,包括:
依照各通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立浏览器端与本地服务端之间的通讯,直至成功建立浏览器端与本地服务端之间的通讯。
可选地,上述方法还包括:
若依照各通讯方式的优先级由高到低的顺序,各通讯方式均未能成功建立浏览器端与本地服务端之间的通讯,则重复执行依照各通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立浏览器端与本地服务端之间的通讯的步骤,直至达到预设的结束条件。
可选地,结束条件包括:
尝试通过对应的通讯建立浏览器端与本地服务端之间的通讯的尝试次数达到指定值。
可选地,通讯方式包括以下至少一项:
https通讯;
websocket通讯;
浏览器插件通讯。
可选地,上述方法还包括:
向业务服务器发送携带有参数信息的优先级获取请求;
接收业务服务器返回的优先级。
第二方面,本申请实施例提供了一种通讯的建立装置,该装置包括:
通讯方式确定模块,用于在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式;
通讯建立模块,用于在通讯方式包括至少两种时,基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。
可选地,通讯建立模块在基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯时,具体用于:
依照各通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立浏览器端与本地服务端之间的通讯,直至成功建立浏览器端与本地服务端之间的通讯。
可选地,通讯建立模块还用于:
若依照各通讯方式的优先级由高到低的顺序,各通讯方式均未能成功建立浏览器端与本地服务端之间的通讯,则重复执行依照各通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立浏览器端与本地服务端之间的通讯的步骤,直至达到预设的结束条件。
可选地,结束条件包括:
尝试通过对应的通讯建立浏览器端与本地服务端之间的通讯的尝试次数达到指定值。
可选地,通讯方式包括以下至少一项:
https通讯;
websocket通讯;
浏览器插件通讯。
可选地,上述装置还包括优先级获取模块,优先级获取模块用于:
向业务服务器发送携带有参数信息的优先级获取请求;
接收业务服务器返回的优先级。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式中所示的通讯的建立方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式中所示的通讯的建立方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例中的方案,通过在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式,若通讯方式包括至少两种,则基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。基于本方案,能够基于通讯接口支持的多种通讯方式以及各通讯方式的优先级来建立通讯,避免因单一的通讯方式不可用所导致的通讯建立失败,保证的通讯成功建立。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种通讯的建立方法的流程示意图;
图2为本申请实施例提供的通讯的建立方法的具体实施方式的流程示意图;
图3为本申请实施例提供的一种通讯的建立装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本地https技术、websocket技术均可用于浏览器与本地服务端进行的通讯,其中本地https技术和websocket技术为全双工通讯,均可以代替浏览器自身的插件(控件、扩展)技术,支持ie、chrome、firefox、safari、edge等主流及其内核浏览器访问本地资源。与插件技术因浏览器而异不同,本地https技术、websocket技术可以采用统一实现的方式,屏蔽浏览器的差异,支持浏览器与本地服务器跨网络和跨进程通讯,能减少开发、测试、维护的工作量。
目前,浏览器插件方式通讯在各浏览器实现机制不相同,受环境影响大,可能存在被禁用导致不可用的情况。
本地https通讯方式均存在本地服务器的接口被占用或禁用时导致服务不可用的缺陷,对于ie浏览器只支持ie9及其以上浏览器。
websocket通讯方式均存在本地服务器的接口被占用或禁用时导致服务不可用的缺陷,对于ie浏览器只支持ie10及其以上浏览器。
因此,现有技术中存在单一通讯无法适配所有浏览器的问题,并且单一通讯方式出现通讯失效时,浏览器无法与本地服务器进行跨网络和跨进程通讯。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种通讯的建立方法的流程示意图,如图1所示,该方法主要可以包括:
步骤s110:在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式;
步骤s120:若通讯方式包括至少两种,则基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。
本申请实施例中,可以针对多种通讯方式预建立统一的通讯接口,具体而言,在浏览器中封装插件脚本(javascript,js)、本地httpsjs和websocketjs为统一接口js,便于业务js使用。其中插件js与为本地插件通讯访问本地资源,本地httpsjs和websocketjs和本地服务端中对应的本地https和websocket服务通讯访问本地资源。
本申请实施例中,若浏览器端支持浏览器插件通讯、https通讯和websocket通讯中的至少两种时,可以根据业务需求为支持的通讯方式预设置优先级,并基于优先级实现浏览器端与本地服务端之间的通讯。
由于是基于通讯接口所支持的多种通讯方式来建立通讯,避免单一的通讯方式不可能时,影响浏览器端与本地服务端的通讯建立。
本申请实施例中的方法,通过在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式,若通讯方式包括至少两种,则基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。基于本方案,能够基于通讯接口支持的多种通讯方式以及各通讯方式的优先级来建立通讯,避免因单一的通讯方式不可用所导致的通讯建立失败,保证的通讯成功建立。
本申请实施例的一种可选方式中,基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯,包括:
依照各通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立浏览器端与本地服务端之间的通讯,直至成功建立浏览器端与本地服务端之间的通讯。
本申请实施例中,可以按照优先级由高到低的顺序,依次通过各通讯方式尝试建立通讯,直至通讯建立成功,并通过该通讯方式进行浏览器端与本地服务端之间的通讯。
本申请实施例的一种可选方式中,上述方法还包括:
若依照各通讯方式的优先级由高到低的顺序,各通讯方式均未能成功建立浏览器端与本地服务端之间的通讯,则重复执行依照各通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立浏览器端与本地服务端之间的通讯的步骤,直至达到预设的结束条件。
本申请实施例中,如果按照优先级的顺序,各优先级对应的全部通讯方式均未能成功建立通讯,这时可以重复按照优先级由高到低的顺序,依次通过各通讯方式尝试建立通讯的步骤,直至成功建立通讯,或者达到预设的结束条件。
具体而言,结束条件可以包括:尝试通过对应的通讯建立浏览器端与本地服务端之间的通讯的尝试次数达到指定值。
通过设置结束条件,使得尝试建立通讯的尝试次数不超过指定值,避免用户等待的时间过长,影响用户体验。
在尝试通过对应的通讯方式建立浏览器端与本地服务端之间的通讯的尝试次数达到指定值后,可以结束通讯建立流程,并且向用户反馈未能成功建立通讯的提示信息。
本申请实施例的一种可选方式中,上述方法还包括:
向业务服务器发送携带有参数信息的优先级获取请求;
接收业务服务器返回的优先级。
本申请实施例,优先级的相关信息可以被存储在业务服务器,浏览器端可以基于参数信息向业务服务器请求优先级相关信息。
具体而言,参数信息可以包括浏览器相关信息,如浏览器版本、位数等。参数信息也可以包括操作系统信息包括操作系统版本、位数、cpu、内存等。
作为一个示例,浏览器为ie浏览器,ie浏览器版本为ie6-ie8时,通讯方式仅支持浏览器插件通讯;ie浏览器版本为ie9,支持的通讯方式为浏览器插件通讯以及https通讯,可以预设置浏览器插件通讯的优先级高于https通讯;ie浏览器版本为ie10-ie11,支持的通讯方式为浏览器插件通讯、https通讯以及websocket通讯,可以预设置浏览器插件通讯的优先级高于https通讯,https通讯的优先级高于websocket通讯。
以chrome、firefox、safari、edge等浏览器,通讯方式可以为https通讯与websocket通讯,且https通讯的优先级高于websocket通讯。
本申请实施例提供的方法解决了单一通讯无法适配所有浏览器的问题,根据浏览器特性和通讯优先级设置策略,当某种通讯服务方式不可用时,根据策略自动切换为另外一种通讯方式,提高浏览器与本地服务器进行跨网络和跨进程通讯的高可用性。
作为一个示例,图2中示出了本申请实施例提供的通讯的建立方法的一种具体实施方式的流程示意图。
如图2中所示,浏览器(即浏览器端)可以通过上传浏览器和操作系统信息发起通过方式优先级策略获取请求,业务服务器可以通讯方式优先级策略下发给浏览器端。浏览器端可以按照优先级由高到低的顺序轮询各种通讯方式并尝试建立通讯,本地服务器可以处理通讯建立请求来建立通讯。如果通讯建立成功,则可以通过建立成功的通讯方式来访问本地资源。如果通讯建立未成功,则可以重复尝试建立通讯,直至达到重试次数上限,结束通讯建立流程。
基于与图3中所示的方法相同的原理,图3示出了本申请实施例提供的一种通讯的建立装置的结构示意图,如图3所示,该通讯的建立装置20可以包括:
通讯方式确定模块210,用于在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式;
通讯建立模块220,用于在通讯方式包括至少两种时,基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。
本申请实施例中的装置,通过在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式,若通讯方式包括至少两种,则基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。基于本方案,能够基于通讯接口支持的多种通讯方式以及各通讯方式的优先级来建立通讯,避免因单一的通讯方式不可用所导致的通讯建立失败,保证的通讯成功建立。
可选地,通讯建立模块在基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯时,具体用于:
依照各通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立浏览器端与本地服务端之间的通讯,直至成功建立浏览器端与本地服务端之间的通讯。
可选地,通讯建立模块还用于:
若依照各通讯方式的优先级由高到低的顺序,各通讯方式均未能成功建立浏览器端与本地服务端之间的通讯,则重复执行依照各通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立浏览器端与本地服务端之间的通讯的步骤,直至达到预设的结束条件。
可选地,结束条件包括:
尝试通过对应的通讯建立浏览器端与本地服务端之间的通讯的尝试次数达到指定值。
可选地,通讯方式包括以下至少一项:
https通讯;
websocket通讯;
浏览器插件通讯。
可选地,上述装置还包括优先级获取模块,优先级获取模块用于:
向业务服务器发送携带有参数信息的优先级获取请求;
接收业务服务器返回的优先级。
可以理解的是,本实施例中的通讯的建立装置的上述各模块具有实现图1中所示的实施例中的通讯的建立方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述通讯的建立装置的各模块的功能描述具体可以参见图1中所示实施例中的通讯的建立方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的通讯的建立方法。
作为一个示例,图4示出了本申请实施例所适用的一种电子设备的结构示意图,如图4所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是cpu(centralprocessingunit,中央处理器),通用处理器,dsp(digitalsignalprocessor,数据信号处理器),asic(applicationspecificintegratedcircuit,专用集成电路),fpga(fieldprogrammablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是rom(readonlymemory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(randomaccessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electricallyerasableprogrammablereadonlymemory,电可擦可编程只读存储器)、cd-rom(compactdiscreadonlymemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的通讯的建立方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,通过在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式,若通讯方式包括至少两种,则基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。基于本方案,能够基于通讯接口支持的多种通讯方式以及各通讯方式的优先级来建立通讯,避免因单一的通讯方式不可用所导致的通讯建立失败,保证的通讯成功建立。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的通讯的建立方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,通过在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定通讯接口所支持的通讯方式,若通讯方式包括至少两种,则基于通讯方式的优先级,建立浏览器端与本地服务端之间的通讯。基于本方案,能够基于通讯接口支持的多种通讯方式以及各通讯方式的优先级来建立通讯,避免因单一的通讯方式不可用所导致的通讯建立失败,保证的通讯成功建立。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
1.一种通讯的建立方法,其特征在于,包括:
在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定所述通讯接口所支持的通讯方式;
若所述通讯方式包括至少两种,则基于所述通讯方式的优先级,建立所述浏览器端与所述本地服务端之间的通讯。
2.根据权利要求1所述的方法,其特征在于,所述基于所述通讯方式的优先级,建立所述浏览器端与所述本地服务端之间的通讯,包括:
依照各所述通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立所述浏览器端与所述本地服务端之间的通讯,直至成功建立所述浏览器端与所述本地服务端之间的通讯。
3.根据权利要求2所述的方法,其特征在于,还包括:
若依照各所述通讯方式的优先级由高到低的顺序,各所述通讯方式均未能成功建立所述浏览器端与所述本地服务端之间的通讯,则重复执行依照各所述通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立所述浏览器端与所述本地服务端之间的通讯的步骤,直至达到预设的结束条件。
4.根据权利要求3所述的方法,其特征在于,所述结束条件包括:
尝试通过对应的通讯建立所述浏览器端与所述本地服务端之间的通讯的尝试次数达到指定值。
5.根据权利要求3所述的方法,其特征在于,所述通讯方式包括以下至少一项:
https通讯;
websocket通讯;
浏览器插件通讯。
6.根据权利要求1-5中任一项所述的方法,其特征在于,还包括:
向业务服务器发送携带有参数信息的优先级获取请求;
接收所述业务服务器返回的所述优先级。
7.一种通讯的建立装置,其特征在于,包括:
通讯方式确定模块,用于在浏览器端通过预置的通讯接口建立与本地服务端之间的通讯时,确定所述通讯接口所支持的通讯方式;
通讯建立模块,用于在所述通讯方式包括至少两种时,基于所述通讯方式的优先级,建立所述浏览器端与所述本地服务端之间的通讯。
8.根据权利要求7所述的装置,其特征在于,所述通讯建立模块在基于所述通讯方式的优先级,建立所述浏览器端与所述本地服务端之间的通讯时,具体用于:
依照各所述通讯方式的优先级由高到低的顺序,尝试通过优先级对应的通讯方式建立所述浏览器端与所述本地服务端之间的通讯,直至成功建立所述浏览器端与所述本地服务端之间的通讯。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
技术总结