CN112187887A - 用于多页面的网页实时通信方法、装置、电子设备 - Google Patents
用于多页面的网页实时通信方法、装置、电子设备 Download PDFInfo
- Publication number
- CN112187887A CN112187887A CN202010964021.0A CN202010964021A CN112187887A CN 112187887 A CN112187887 A CN 112187887A CN 202010964021 A CN202010964021 A CN 202010964021A CN 112187887 A CN112187887 A CN 112187887A
- Authority
- CN
- China
- Prior art keywords
- page
- real
- time communication
- thread
- communication component
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种用于多页面的网页实时通信方法,属于通信技术领域,能够实现运行在不同标签页中实时通信组件状态的同步。所述方法包括:在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态。
Description
技术领域
本申请实施例涉及通信技术领域,特别是涉及一种用于多页面的网页实时通信方法、装置、电子设备及计算机可读存储介质。
背景技术
WebRTC(Web Real-Time Communication,网页实时通信)是一种支持网页浏览器进行实时语音对话或视频对话的技术,例如,可以通过webRTC实现语音通话、视频通话或实时屏幕分享等功能。WebRTC在客服系统、面试系统等多页面实时通信并行的业务系统中具有广泛应用。由于WebRTC通信时必须有一个页面作为WebRTC的启动页面,因此,现有技术中基于WebRTC的通信应用只能在一个页面中实时运行WebRTC应用,多个页面或不同系统中无法同步WebRTC应用的状态。例如,在客服系统中,当客服人员需要在客服系统的主页面和订单查看页面都能够拨打电话,在主页面拨打电话后,切换到订单页面,此时,订单查看页面的电话状态没有被同步。
现有技术中基于WebRTC技术通信方法还需要改进。
发明内容
本申请实施例提供一种用于多页面的网页实时通信方法,可以提升用于多页面的网页实时通信的效率。
为了解决上述问题,第一方面,本申请实施例提供了一种用于多页面的网页实时通信方法,包括:
在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;
通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;
根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态。
第二方面,本申请实施例提供了一种用于多页面的网页实时通信装置,包括:
共享线程初始化模块,用于在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;
数据更新和接收模块,用于通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;
网页实时通信组件运行状态更新模块,用于根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态。
第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的用于多页面的网页实时通信方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的用于多页面的网页实时通信方法的步骤。
本申请实施例公开的用于多页面的网页实时通信方法,通过在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态,实现了运行在不同标签页中实时通信组件状态的同步。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请实施例一的用于多页面的网页实时通信方法流程图;
图2是本申请实施例一的用于多页面的网页实时通信方法数据交互示意图之一;
图3是本申请实施例一的用于多页面的网页实时通信方法数据交互示意图之二;
图4是本申请实施例二的用于多页面的网页实时通信方法流程图;
图5是本申请实施例二的用于多页面的网页实时通信方法数据交互示意图;
图6是本申请实施例三的用于多页面的网页实时通信装置结构示意图之一;
图7是本申请实施例三的用于多页面的网页实时通信装置结构示意图之二;
图8是本申请实施例三的用于多页面的网页实时通信装置结构示意图之三;
图9示意性地示出了用于执行根据本申请的方法的电子设备的框图;以及
图10示意性地示出了用于保持或者携带实现根据本申请的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本申请实施例公开的一种用于多页面的网页实时通信方法,如图1所示,所述方法包括:步骤110至步骤130。
步骤110,在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程。
其中,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的。
本申请的一些实施例中所述的用于多页面的网页实时通信方法,可以应用于具有多个标签页的应用程序中,例如客服应用中,为不同客户服务时会打开多个标签页面,每个标签页面中都嵌入有通信组件,如基于WebRTC技术实现的通信组件。本申请的另一些实施例中,所述的用于多页面的网页实时通信方法,还可以应用于多个网页中,例如访问同一个服务页面的多个网页,每个网页中都嵌入有通信组件,如基于WebRTC技术实现的通信组件。
下面以将本方法应用于多个网页中为例,详细描述本方法的具体实施方式。
本申请实施例中,以网页实时通信组件为WebRTC组件为例及进行技术方案说明。所述的WebRTC组件的启动页面为运行WebRTC组件的页面,所述页面代码中包括WebRTC组件的界面管理代码(如实例化代码、初始化代码、WebRTC组件状态更新代码等)。在WebRTC组件的启动页面初始化过程中,该页面运行的WebRTC组件的初始化代码将被执行,所述WebRTC组件的初始化代码被执行时可以包括:实例化一个WebRTC组件、通信状态初始化、界面初始化等操作。
本申请的一些实施例中,以客服应用为例,一个为客服人员可能同时打开多个网页与不同的客户进行沟通,但是,同一时间,同一客服人员只能与一位客户进行实时语音通信。即在同时打开的多个嵌入有WebRTC组件的页面中,所有WebRTC组件的通信状态需要保持一致,例如,当客服人员在页面A启动电话工具条(即WebRTC组件)与客户进行实时语音通话时,当该客服人员打开页面B的情况下,内嵌于页面B中的电话工具条需要指示通话进行中的状态。因此,在不同的页面被打开时,在该页面初始化的过程中,该页面运行的电话工具条的通信状态的状态数据应该是相同的。
本申请的一些实施例中,通过共享线程(sharedwoker)技术解决不同页面内运行的WebRTC组件数据同步问题。具体做法举例如下:在每个WebRTC组件的启动页面(即运行WebRTC组件的页面)的页面代码中设置创建同名共享线程的页面代码,并设置通过该共享线程接收消息和发送消息交互代码;以及,设置通过与共享线程进行消息交互获取的WebRTC组件的状态数据初始化该页面运行的WebRTC组件的页面代码。同时,每个WebRTC组件的启动页面的页面代码中设置将当前页面运行的WebRTC组件的状态数据通过与所述共享线程进行消息交互,发送至所述共享线程进行存储的页面代码。这样,不同的页面可以通过与所述同名共享线程进行消息交互,获取当前页面运行的WebRTC组件的实时数据,不同页面中运行的WebRTC组件的运行状态时同步的。
本申请的一些实施例中,可以通过new Sharedworker(aURL)页面代码创建一个共享线程,其中,参数aURL后台线程文件的URL地址,当多个创建共享线程的页面代码的aURL参数名称一致时,即,多个共享线程使用同一个线程文件时,则这多个页面将调用同一个共享线程,该共享线程存储的数据也能实现共享。例如,在页面A和页面B的页面代码中插入以下代码:
var myWorker=new SharedWorker('worker.js')创建共享线程myWorker,其中,worker.js为共享线程myWorker的线程文件,则页面A和页面B可以通过共享线程myWorker共享数据。
因此,首先需要通过执行WebRTC组件的启动页面的页面代码实例化该同名共享线程(即预设共享线程sharedwoker),并初始化该同名共享线程。本申请的一些实施例中,所述通过执行所述启动页面的页面代码初始化预设共享线程的步骤,包括:通过执行所述启动页面的页面代码,判断所述预设共享线程是否已经初始化;响应于所述预设共享线程未初始化,初始化所述预设共享线程;响应于所述预设共享线程已经初始化,跳过初始化所述预设共享线程的步骤。
在本申请的实施例中,由于多个页面在初始化时都会创建该同名共享线程(即预设共享线程),但是为了保存WebRTC组件的当前状态,该同名共享线程只能被最先初始化的页面初始化,后续初始化的页面不允许再一次对该同名共享线程执行初始化操作。因此,本申请的一些实施例中该,可以通过设置状态标识的方法标识该同名共享线程的初始化状态,进一步的,每个页面在初始化的过程中,在对该同名共享线程进行初始化时,首次安通过该状态标识判断该同名共享线程是否已经初始化。进一步的,如果判断该同名共享线程未初始化,则初始化该同名共享线程;如果该同名共享线程已经初始化,则跳过初始化该同名共享线程的步骤,继续执行后续页面代码,这样,可以保证该同名共享线程仅最先打开的页面的页面代码执行初始化。
在页面初始化WebRTC组件的过程中,可以通过与该同名共享线程进行消息交互,获取WebRTC组件的实时状态信息,并基于获取的WebRTC组件的实时状态信息,初始化该页面即将运行的WebRTC组件。
步骤120,通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
在同名共享线程初始化完成之后,每个创建了该同名共享线程且已经打开的页面(即完成初始化的页面),均可以通过该同名共享线程获取共享数据并通过该同名共享线程存储共享数据。基于同名共享线程的数据交互示意图如图2所示,共享线程(如myWorker)作为页面A和页面B内的通信代理,负责和媒体服务器等远端通信设备进行通信,并维护页面A和页面B的通信接口、通信状态、连接状态以及设备状态等,进一步的,页面A和页面B通过postMessage()方法与共享线程进行消息交互,发送当前页面内WebRTC组件的状态信息至共享线程进行存储,同时接收共享线程发送的其他页面运行的WebRTC组件的状态信息,用于页面A和页面B通本更新当前页面内WebRTC组件的状态信息。
例如,在页面A启动WebRTC组件(如webrtcClient1)进行实时通话过程中,页面A通过postMessage方法与共享线程进行消息交互,发送页面A内WebRTC组件的状态信息至共享线程进行存储。此时如果页面B被启动运行,在页面B进行初始化的过程中,页面B通过postMessage方法与共享线程进行消息交互,接收共享线程发送的页面A中正在运行的WebRTC组件(如webrtcClient1)的实时状态信息,并很据接收到的所述实时状态信息初始化页面B中WebRTC组件(如webrtcClient2),使得页面B中的WebRTC组件(如webrtcClient2)的状态与页面A中的WebRTC组件(如webrtcClient1)的状态同步。在页面B运行过程中,共享线程会将本存储的WebRTC组件的实时状态分发至每个创建了该共享线程的页面,以便于接收到WebRTC组件的实时状态的页面,实时更新页面内运行的WebRTC组件的实时状态。
Sharedworker(即共享线程)严格遵循同源策略,即代码需要在同域。如果运行WebRTC组件的页面在同一域名下,则通过前述方法创建的同名共享线程即可实现不同页面之间的WebRTC组件状态信息同步。如果运行WebRTC组件的页面不在同一域名下,还需要进一步对同名共享线程的创建方法进行处理。本申请的一些实施例中,可以通过以下两种方法实现不同域名下页面运行的WebRTC组件状态信息同步。
第一种方法,通过引入相同的dataURL脚本解决页面跨域问题。
例如,本申请的一些实施例中,所述通过执行所述启动页面的页面代码初始化预设共享线程,包括:通过执行所述启动页面的页面代码为所述预设共享线程的调用参数传入相同线程文件的链接,初始化预设共享线程,其中,所述链接用于为不同启动页面初始化的所述预设共享线程引入同一配置脚本,使不同域下的所述启动页面可以与所述预设共享线程进行消息交互。
例如,在通过new Sharedworker(aURL)页面代码创建一个共享线程,其中,参数aURL表示共享线程的后台线程文件链接地址,当多个创建共享线程的页面代码的aURL参数名称一致时,即,多个共享线程使用同一个线程文件时,则这多个页面将调用同一个共享线程,该共享线程存储的数据也能实现共享。进一步的,可以通过以下代码:
var myWorker=newSharedWorker('data:text/javascript;importScript('worker.js')')
创建共享线程myWorker,其中,
data:text/javascript;importScript('worker.js')为共享线程myWorker的线程描述文件链接,worker.js为共享线程myWorker的线程描述文件。进一步的,在线程描述文件链接中通过调用importScripts()方法引入相同脚本文件,以打破该同名共享线程在数据消息发送和接收时对页面域名的限制。
第二种方法,通过在页面中引入相同域名下的iframe(HTML的标签,一种网页嵌入式框架),并在iframe中创建同名SharedWorker,解决页面跨域共享数据问题。
例如,在页面A和页面B内通过iframe分别嵌入指定域名下的页面C1和C2,其中,页面C1和C2在相同域名下,页面C1和C2是内容完全相同的页面。在页面C1和C2中分别创建同名共享线程(如共享线程myWorker),这样,可以将iframe作为代理层,iframe通过调用postMessage()方法与父页面(即页面A或页面B)、创建的同名共享线程进行消息交互。基于同名共享线程的数据交互示意图如图3所示,iframe页面(如前述页面C1和C2)分别作为页面A和页面B与内共享线程sharedworker之间的通信代理,页面A和页面B通过iframe页面(如前述页面C1和C2)与共享线程进行消息交互,获取WebRTC组件的实时状态数据。共享线程,负责和媒体服务器等远端通信设备进行通信,并维护页面A和页面B的通信接口、通信状态、连接状态以及设备状态等。进一步的,页面A和页面B通过postMessage()方法与iframe嵌入的共享线程进行消息交互,发送当前页面内WebRTC组件的状态信息至共享线程进行存储,同时接收共享线程发送的其他页面运行的WebRTC组件的状态信息,用于页面A和页面B通本更新当前页面内WebRTC组件的状态信息。页面C1和C2(即在iframe中)创建共享线程myWorker的具体方式如前所述,此处不再赘述。
本申请的一些实施例中,每个所述网页实时通信组件嵌入在各所述启动页面内相同域名下的iframe(即网页嵌入式框架)嵌套页面中,所述通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,包括:对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储;所述接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据,包括:对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
例如,在页面A启动运行之后,页面A运行当前页面内的WebRTC组件(如webrtcClient1),并将WebRTC组件(如webrtcClient1)的运行数据通过iframe页面(即页面C)与同名共享线程(如按照前述方法创建的共享线程myWorker)进行消息交互,发送至所述同名共享线程,通过iframe将消息由所述指定域下的页面发送到共享线程,再由共享线程把消息转发给页面B中iframe嵌入的页面C2,由页面C2再把消息通过iframe交给父页(即页面B)。之后,页面B根据页面C2上传的数据更新WebRTC组件(如webrtcClient2)的实时运行状态。
步骤130,根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态。
在WebRTC组件运行过程中,运行该WebRTC组件的页面(如页面A)根据该WebRTC组件(如webrtcClient1)在运行过程中生成的数据更新该WebRTC组件(如webrtcClient1)的实时运行状态。或者,在页面A运行过程中,当页面B启动运行的情况下,页面B根据iframe嵌入的页面C2上传的WebRTC组件(如webrtcClient1)的实时运行数据,更新页面B运行的WebRTC组件(如webrtcClient2)的实时运行状态。本申请的一些实施例中,运行WebRTC组件的页面通过执行界面管理模块的代码更新页面内WebRTC组件的界面信息(如运行状态)。
本申请实施例中,共享线程中存储的WebRTC组件为任意一个创建了该共享线程的页面所运行的WebRTC组件的运行数据,因为各个页面中WebRTC组件的运行状态时一致的,所以,共享线程中仅存储一份WebRTC组件的运行数据,共享线程中存储的WebRTC组件的运行数据为创建了该共享线程的每个页面所运行的WebRTC组件的运行数据。
本申请的一些实施例中,为了稳定维护不同页面中WebRTC组件的运行状态,所述通过执行所述启动页面的页面代码初始化预设共享线程之后,还包括:所述预设共享线程通过与预设服务器进行通信,同步所述网页实时通信组件的实时运行数据。例如,WebRTC组件在与远端媒体服务等进行通信过程中,所述预设服务器会监听所述WebRTC组件的运行状态,并获取所述WebRTC组件的日志数据等信息。前述步骤中创建的共享线程myWorker通过周期访问预设服务器或注册所述预设服务器的消息推送服务,与所述预设服务器进行通信,获取所述预设服务器存储的所述WebRTC组件的实时运行数据,之后,所述预设共享线程通过从所述预设服务器获取的所述WebRTC组件的实时运行数据同步本地缓存的所述WebRTC组件的实时运行数据。
本申请的一些实施例中,所述在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程之后,还包括:响应于所述网页实时通信组件的启动页面被关闭,向所述共享线程发送指示所述启动页面被关闭的第一消息;通过所述共享线程根据所述第一消息中携带的当前关闭页面标识,更新所述网页实时通信组件的启动页面的运行状态。
例如,在页面A和页面B运行过程中,在页面A启动运行WebRTC组件(如webrtcClient1)之后,页面A的页面标识将被作为WebRTC组件的主页面标识存储在共享线程中。在页面B运行过程中,页面B中的WebRTC组件(如webrtcClient2)的运行状态与页面A中WebRTC组件(如webrtcClient1)的运行状态同步更新。如果此时页面B被关闭,页面B将向共享线程发送第一消息,所述第一消息中携带页面B的页面标识,所述共享线程在接收到第一消息之后,更新页面B的运行状态为指示关闭状态。后续,所述共享线程将不再向页面发布WebRTC组件的状态。
本申请的一些实施例中,所述在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程之后,还包括:通过所述共享线程记录所述网页实时通信组件的主页面标识;根据所述第一消息中携带的当前关闭页面标识,更新网页实时通信组件的启动页面的运行状态之后,还包括:响应于所述当前关闭页面标识匹配所述主页面标识,更新所有所述网页实时通信组件的运行状态为指示通信结束状态。例如,所述共享线程会进一步判断所述第一消息中携带的页面标识与所述主页面标识是否相同,若不同,则认为用户关闭了网页实时通信通信的副页面,所述共享线程将所述第一消息携带的页面标识对应的页面运行状态更新为指示关闭状态。若此时第一消息中携带页面A的页面标识,所述共享线程进一步判断所述第一消息中携带的页面标识与所述主页面标识相同,则认为用户关闭了WebRTC通信的主页面,所述共享线程将所述WebRTC组件的运行状态更新为指示通信结束状态,之后,所述共享线程将WebRTC组件的实时状态(即通信结束状态)同步到仍处于运行状态的页面。
本申请实施例公开的用于多页面的网页实时通信方法,通过在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态,实现了运行在不同标签页中实时通信组件状态的同步。本申请实施例公开的用于多页面的网页实时通信方法,通过不同页面创建同名共享线程,通过所述同名共享线程进行不同页面之间的信息传递,使得运行在不同页面内的网页实时通信组件通过当前承载页(即启动页面)进行实时数据同步,解决了多个页面可以同时运行网页实时通信组件,并且保证多个页面中网页实时通信组件状态同步的问题。
进一步的,通过在SharedWorker()的参数中通过后台线程文件引入相同脚本,或者,通过在不同页面内嵌入相同域下的子页面,然后在子页面中创建同名共享线程,通过同域下的子页面代理启动页面和共享线程之间的消息交互,打破了共享线程不支持跨域,不支持多域名引入的壁垒,可以实现不同域下页面运行的网页实时通信组件的数据同步。
另一方面,通过共享线程维护多个页面运行的网页实时通信组件的状态,并上报通信日志,避免了多个页面共同打开时同时上报通信日志导致的数据冗余。
实施例二
本申请实施例公开的一种用于多页面的网页实时通信方法,如图4所示,包括:步骤410至步骤440。
步骤410,在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程。
所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的。
在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程的具体实施方式参见实施例一,本实施例不再赘述。
步骤420,响应于在所述启动页面启动所述网页实时通信组件,将已打开的设备页面作为所述网页实时通信组件的通话承载页面。
仍以本申请实施例中所述的网页实时通信方法应用于内嵌有WebRTC组件的页面A和页面B为例,当页面A首先被启动时,如实施例一所述,计算处理设备通过执行页面A的页面代码初始化预设共享线程,之后,进一步初始化页面A内嵌的WebRTC组件的界面(如电话工具条界面)、加载语音流控制和状态控制等逻辑。当页面B接下来被打开时,由于所述预设共享线程已经被初始化,计算处理设备不再重复初始化所述预设共享线程,仅初始化页面B内嵌的WebRTC组件的界面和运行状态。
接下来,当页面A内嵌的WebRTC组件被启动(如计算处理设备检测到页面A中内嵌的,基于WebRTC技术实现的电话工具条中拨打电话按键被触发)时,计算处理设备通过window.Open()方法打开一个新的指定名称的设备页面,并打开该指定名称的设备页面,或者直接打开指定名称的设备页面,之后,将已打开的设备页面作为所述WebRTC组件的通话承载页面。
本申请实施例中所述的设备页面承载语音流的页面,使用的是WebRTC技术进行语音流传输。
本申请的一些实施例中,还需要将打开的所述指定名称的设备页面与所述预设共享线程关联,以使得所述设备页面可以与所述预设共享线程进行消息交互。本申请的一些实施例中,可以通过由所述设备页面创建与所述预设共享线程的同名共享线程的方式,将所述设备页面与所述预设共享线程关联。
其中,所述预设共享线程作为消息代理和分发渠道,通知设备页面进行WebRTC通信(即网页实时通信),并转发WebRTC组件(即网页实时通信组件)建立连接必要的信息。所述预设共享线程还处理网页实时通信组件结束实时通信等事件。
步骤430,通过所述网页实时通信组件的所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程;或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
在网页实时通信组件运行过程中,计算处理设备通过所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程进行存储,并分发至所述网页实时通信组件的启动页面(如页面A、页面B)。
所述网页实时通信组件的各启动页面接收到所述预设共享线程发送的所述实时运行数据,并根据所述实时运行数据更新所述网页实时通信组件的实时状态。本申请的一些实施例中,计算处理设备通过执行启动页面中的界面管理模块的代码更新所述网页实时通信组件的实时状态。
本申请的一些实施例中,为了使内嵌有网页实时通信组件的页面之间可以跨域进行数据共享,可以采用如实施例一中所述的第一种或第二种方案,解决多个标签页面的快于共享数据问题,本实施例中不再赘述。
本申请的一些实施例中,当采用如实施例一中所述的第二种方法解决跨域标签页通信问题时,所述网页实时通信组件嵌入在所述设备页面内指定域名下的网页嵌入式框架嵌套页面中,所述通过所述网页实时通信组件的所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程,包括:通过嵌入在所述设备页面内的所述网页嵌入式框架嵌套页面,与所述共享线程进行消息交互,将所述网页实时通信组件的实时运行数据更新至所述预设共享线程进行存储。如图5所示的通信示意图,设备页面通过该页面内嵌入的指定域名下的iframe嵌套页面获取WebRTC组件的运行状态数据,并通过调用postMessage()方法将WebRTC组件的运行状态数据发送到所述预设共享线程存储。
相应的,所述接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据,包括:对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。如图5所示,所述预设共享线程通过postMessage()方法向各启动页面中嵌入的iframe嵌套页面分发所述WebRTC组件的实时运行数据,之后,各启动页面中嵌入的iframe嵌套页面进一步通过postMessage()方法将所述预设共享线程分发的所述WebRTC组件的实时运行数据(如运行状态)发送给嵌入的所述启动页面。
步骤440,根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态。
根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态的具体实施方式参见实施例一,本实施例不再赘述。
本申请的一些实施例中,所述在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程之后,还包括:响应于所述网页实时通信组件的启动页面被关闭,向所述共享线程发送指示所述启动页面被关闭的第二消息;根据所述第二消息中携带的当前关闭页面标识,更新网页实时通信组件的启动页面的运行状态;响应于所有所述网页实时通信组件的启动页面处于关闭状态,关闭所述设备页面。在基于网页实时通信组件进行实时通话的过程中,当某个启动页面被关闭时,计算处理设备会通过执行被关闭的启动页面的页面代码向所述共享线程发送第二消息,所述第二消息指示所述启动页面被关闭的第二消息,所述第二消息中携带当前关闭页面标识。所述预设共享线程在接收到所述第二消息之后,根据第二消息中携带的当前关闭页面标识,将网页实时通信组件的相应启动页面的运行状态设置为指示关闭状态,以便后续不再向该启动页面分发网页实时通信组件的实时运行数据,减少数据传输资源消耗。
进一步的,所述预设共享线程在根据所述第二消息中携带的当前关闭页面标识,更新网页实时通信组件的启动页面的运行状态之后,判断是否所有网页实时通信组件的启动页面均已关闭,若是,则关闭设备。例如,打开的业务页面全部关闭之后,所述预设共享线程向所述设备页面发送指示关闭设备页面的消息,通知设备页面执行关闭操作。
本申请实施例公开的用于多页面的网页实时通信方法,通过在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程;之后,响应于在所述启动页面启动所述网页实时通信组件,将已打开的设备页面作为所述网页实时通信组件的通话承载页面;并通过所述网页实时通信组件的所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程;或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据,使得不同所述启动页面根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态,从而实现不同页面中网页实时通信通信组件状态的同步。
本申请实施例公开的用于多页面的网页实时通信方法,通过不同页面创建同名共享线程,通过所述同名共享线程进行不同页面之间的信息传递,使得运行在不同页面内的网页实时通信组件通过当前承载页(即启动页面)进行实时数据同步,解决了多个页面可以同时运行网页实时通信组件,并且保证多个页面中网页实时通信组件状态同步的问题。本申请实施例通过利用后台设备页面承载实时通信的语音流,业务页面(即前述WebRTC组件的启动页面)展示通信组件的通信状态,业务页面与语音流传输无关,从而使业务页面的关闭不会导致网页实时通信通信连接关闭。
进一步的,通过在SharedWorker()的参数中通过后台线程文件引入相同脚本,或者,通过在不同页面内嵌入相同域下的子页面,然后在子页面中创建同名共享线程,通过同域下的子页面代理启动页面和共享线程之间的消息交互,打破了共享线程不支持跨域,不支持多域名引入的壁垒,可以实现不同域下页面运行的网页实时通信组件的数据同步。
另一方面,通过共享线程维护多个页面运行的网页实时通信组件的状态,并上报通信日志,避免了多个页面共同打开时同时上报通信日志导致的数据冗余。
实施例三
本申请实施例公开的一种用于多页面的网页实时通信装置,如图6所示,所述装置包括:
共享线程初始化模块610,用于在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;
数据更新和接收模块620,用于通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;
网页实时通信组件运行状态更新模块630,用于根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态。
本申请的一些实施例中,如图7所示,所述装置还包括:
数据同步模块640,用于所述预设共享线程通过与预设服务器进行通信,同步所述网页实时通信组件的实时运行数据。
本申请的一些实施例中,如图7所示,所述装置还包括:
页面关闭消息发送模块650,用于响应于所述网页实时通信组件的启动页面被关闭,向所述共享线程发送指示所述启动页面被关闭的第一消息;
所述网页实时通信组件运行状态更新模块630,还用于通过所述共享线程根据所述第一消息中携带的当前关闭页面标识,更新所述网页实时通信组件的启动页面的运行状态。
本申请的一些实施例中,所述共享线程初始化模块610,进一步用于:
通过执行所述启动页面的页面代码,判断所述预设共享线程是否已经初始化;
响应于所述预设共享线程未初始化,初始化所述预设共享线程;
响应于所述预设共享线程已经初始化,跳过初始化所述预设共享线程的步骤。
本申请的一些实施例中,每个所述网页实时通信组件嵌入在各所述启动页面内相同域名下的网页嵌入式框架嵌套页面中,所述通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,包括:
对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储;
所述接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据,包括:
对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
本申请的一些实施例中,所述所述共享线程初始化模块610,进一步用于:
通过执行所述启动页面的页面代码为所述预设共享线程的调用参数传入相同线程文件的链接,初始化预设共享线程,其中,所述链接用于为不同启动页面初始化的所述预设共享线程引入同一配置脚本,使不同域下的所述启动页面可以与所述预设共享线程进行消息交互。
本申请另的一些实施例中,如图8所示,在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程之后,所述装置还包括:
通话承载页面确定模块660,用于响应于在所述启动页面启动所述网页实时通信组件,将已打开的设备页面作为所述网页实时通信组件的通话承载页面;
所述数据更新和接收模块620,进一步还用于通过所述网页实时通信组件的所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程;以及,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
本申请的一些实施例中,所述网页实时通信组件嵌入在所述设备页面内指定域名下的网页嵌入式框架嵌套页面中,所述通过所述网页实时通信组件的所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程,包括:
通过嵌入在所述设备页面内的所述网页嵌入式框架嵌套页面,与所述共享线程进行消息交互,将所述网页实时通信组件的实时运行数据更新至所述预设共享线程进行存储;
所述接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据,包括:
对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
本申请的一些实施例中,在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程之后,所述装置还包括:
所述页面关闭消息发送模块650,还用于响应于所述网页实时通信组件的启动页面被关闭,向所述共享线程发送指示所述启动页面被关闭的第二消息;
所述网页实时通信组件运行状态更新模块630,还用于根据所述第二消息中携带的当前关闭页面标识,更新网页实时通信组件的启动页面的运行状态;
如图8所示,所述装置还包括:
页面关闭处理模块670,用于响应于所有所述网页实时通信组件的启动页面处于关闭状态,关闭所述设备页面。
本申请实施例公开的用于多页面的网页实时通信装置,用于实现本申请实施例一至实施例三中任一实施例所述的用于多页面的网页实时通信方法,装置的各模块的具体实施方式不再赘述,可参见方法实施例相应步骤的具体实施方式。
本申请实施例公开的用于多页面的网页实时通信装置,通过在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态,实现了运行在不同标签页中实时通信组件状态的同步。本申请实施例公开的用于多页面的网页实时通信装置,通过不同页面创建同名共享线程,通过所述同名共享线程进行不同页面之间的信息传递,使得运行在不同页面内的网页实时通信组件通过当前承载页(即启动页面)进行实时数据同步,解决了多个页面可以同时运行网页实时通信组件,并且保证多个页面中网页实时通信组件状态同步的问题。
进一步的,在共享线程调用参数中,通过后台线程文件引入相同脚本,或者,通过在不同页面内嵌入相同域下的子页面,然后在子页面中创建同名共享线程,通过同域下的子页面代理启动页面和共享线程之间的消息交互,打破了共享线程不支持跨域,不支持多域名引入的壁垒,可以实现不同域下页面运行的网页实时通信组件的数据同步。
另一方面,通过共享线程维护多个页面运行的网页实时通信组件的状态,并上报通信日志,避免了多个页面共同打开时同时上报通信日志导致的数据冗余。
本申请的另一些实施例中,在所述启动页面启动所述网页实时通信组件时,将已打开的设备页面作为所述网页实时通信组件的通话承载页面;并通过所述网页实时通信组件的所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程;或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据,使得不同所述启动页面根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态,从而实现不同页面中网页实时通信通信组件状态的同步。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请提供的一种用于多页面的网页实时通信方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其一种核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的电子设备中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图9示出了可以实现根据本申请的方法的电子设备。所述电子设备可以为PC机、移动终端、个人数字助理、平板电脑等。该电子设备传统上包括处理器910和存储器920及存储在所述存储器920上并可在处理器910上运行的程序代码930,所述处理器910执行所述程序代码930时实现上述实施例中所述的方法。所述存储器920可以为计算机程序产品或者计算机可读介质。存储器920可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器920具有用于执行上述方法中的任何方法步骤的计算机程序的程序代码930的存储空间9201。例如,用于程序代码930的存储空间9201可以包括分别用于实现上面的方法中的各种步骤的各个计算机程序。所述程序代码930为计算机可读代码。这些计算机程序可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。所述计算机程序包括计算机可读代码,当所述计算机可读代码在电子设备上运行时,导致所述电子设备执行根据上述实施例的方法。
本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一至实施例三中任一实施例所述的用于多页面的网页实时通信方法的步骤。
这样的计算机程序产品可以为计算机可读存储介质,该计算机可读存储介质可以具有与图9所示的电子设备中的存储器920类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩存储在所述计算机可读存储介质中。所述计算机可读存储介质通常为如参考图10所述的便携式或者固定存储单元。通常,存储单元包括计算机可读代码930’,所述计算机可读代码930’为由处理器读取的代码,这些代码被处理器执行时,实现上面所描述的方法中的各个步骤。
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本申请的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种用于多页面的网页实时通信方法,其特征在于,包括:
在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;
通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;
根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态。
2.根据权利要求1所述的方法,其特征在于,所述通过执行所述启动页面的页面代码初始化预设共享线程的步骤之后,还包括:
所述预设共享线程通过与预设服务器进行通信,同步所述网页实时通信组件的实时运行数据。
3.根据权利要求1所述的方法,其特征在于,所述在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程的步骤之后,还包括:
响应于所述网页实时通信组件的启动页面被关闭,向所述共享线程发送指示所述启动页面被关闭的第一消息;
通过所述共享线程根据所述第一消息中携带的当前关闭页面标识,更新所述网页实时通信组件的启动页面的运行状态。
4.根据权利要求1所述的方法,其特征在于,所述通过执行所述启动页面的页面代码初始化预设共享线程的步骤,包括:
通过执行所述启动页面的页面代码,判断所述预设共享线程是否已经初始化;
响应于所述预设共享线程未初始化,初始化所述预设共享线程;
响应于所述预设共享线程已经初始化,跳过初始化所述预设共享线程的步骤。
5.根据权利要求1至4任一项所述的方法,其特征在于,每个所述网页实时通信组件嵌入在各所述启动页面内相同域名下的网页嵌入式框架嵌套页面中,所述通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,包括:
对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储;
所述接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据的步骤,包括:
对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述通过执行所述启动页面的页面代码初始化预设共享线程的步骤,包括:
通过执行所述启动页面的页面代码为所述预设共享线程的调用参数传入相同线程文件的链接,初始化预设共享线程,其中,所述链接用于为不同启动页面初始化的所述预设共享线程引入同一配置脚本,使不同域下的所述启动页面可以与所述预设共享线程进行消息交互。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程的步骤之后,还包括:
响应于在所述启动页面启动所述网页实时通信组件,将已打开的设备页面作为所述网页实时通信组件的通话承载页面;
通过所述网页实时通信组件的所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程;
接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
8.根据权利要求7所述的方法,其特征在于,所述网页实时通信组件嵌入在所述设备页面内指定域名下的网页嵌入式框架嵌套页面中,所述通过所述网页实时通信组件的所述通话承载页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据发送至所述预设共享线程,包括:
通过嵌入在所述设备页面内的所述网页嵌入式框架嵌套页面,与所述共享线程进行消息交互,将所述网页实时通信组件的实时运行数据更新至所述预设共享线程进行存储;
所述接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据的步骤,包括:
对于每个所述启动页面,通过嵌入在所述启动页面内的所述网页嵌入式框架嵌套页面与所述共享线程进行消息交互,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据。
9.根据权利要求7所述的方法,其特征在于,所述在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程的步骤之后,还包括:
响应于所述网页实时通信组件的启动页面被关闭,向所述共享线程发送指示所述启动页面被关闭的第二消息;
根据所述第二消息中携带的当前关闭页面标识,更新网页实时通信组件的启动页面的运行状态;
响应于所有所述网页实时通信组件的启动页面处于关闭状态,关闭所述设备页面。
10.一种用于多页面的网页实时通信通信装置,其特征在于,包括:
共享线程初始化模块,用于在网页实时通信组件的启动页面初始化过程中,通过执行所述启动页面的页面代码初始化预设共享线程,所述预设共享线程是由不同网页实时通信组件各自的启动页面分别创建的;
数据更新和接收模块,用于通过所述网页实时通信组件的所述启动页面与所述共享线程进行消息交互,将所述网页实时通信组件生成的实时运行数据更新至所述预设共享线程进行存储,或者,接收所述预设共享线程分发的所述网页实时通信组件的实时运行数据;
网页实时通信组件运行状态更新模块,用于根据生成的或接收的所述网页实时通信组件的实时运行数据,更新所述网页实时通信组件的运行状态。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的程序代码,其特征在于,所述处理器执行所述程序代码时实现权利要求1至9任意一项所述的用于多页面的网页实时通信通信方法。
12.一种计算机可读存储介质,其上存储有程序代码,其特征在于,该程序代码被处理器执行时实现权利要求1至9任意一项所述的用于多页面的网页实时通信通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010964021.0A CN112187887A (zh) | 2020-09-14 | 2020-09-14 | 用于多页面的网页实时通信方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010964021.0A CN112187887A (zh) | 2020-09-14 | 2020-09-14 | 用于多页面的网页实时通信方法、装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112187887A true CN112187887A (zh) | 2021-01-05 |
Family
ID=73920815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010964021.0A Withdrawn CN112187887A (zh) | 2020-09-14 | 2020-09-14 | 用于多页面的网页实时通信方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187887A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312192A (zh) * | 2021-06-07 | 2021-08-27 | 平安证券股份有限公司 | 基于窗口的数据同步方法、装置、电子设备及存储介质 |
CN114666317A (zh) * | 2022-04-14 | 2022-06-24 | 广州公评科技有限公司 | 一种基于网页即时通信技术的外呼系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110433A1 (en) * | 2010-10-28 | 2012-05-03 | Microsoft Corporation | Parallel web page processing |
US20150199312A1 (en) * | 2014-01-14 | 2015-07-16 | Futurewei Technologies Inc. | System and method to share a web thread during page transitions in a web browser |
CN108062252A (zh) * | 2016-11-08 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种信息交互方法、对象管理方法及装置和系统 |
CN110730173A (zh) * | 2019-10-16 | 2020-01-24 | 北京明略软件系统有限公司 | 一种信息交互方法及装置 |
CN110781009A (zh) * | 2018-07-30 | 2020-02-11 | 北京京东尚科信息技术有限公司 | 浏览器页面实时通信的方法及装置 |
CN111240847A (zh) * | 2020-01-19 | 2020-06-05 | 网易传媒科技(北京)有限公司 | 数据处理方法、装置、介质和计算设备 |
-
2020
- 2020-09-14 CN CN202010964021.0A patent/CN112187887A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110433A1 (en) * | 2010-10-28 | 2012-05-03 | Microsoft Corporation | Parallel web page processing |
US20150199312A1 (en) * | 2014-01-14 | 2015-07-16 | Futurewei Technologies Inc. | System and method to share a web thread during page transitions in a web browser |
CN108062252A (zh) * | 2016-11-08 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种信息交互方法、对象管理方法及装置和系统 |
CN110781009A (zh) * | 2018-07-30 | 2020-02-11 | 北京京东尚科信息技术有限公司 | 浏览器页面实时通信的方法及装置 |
CN110730173A (zh) * | 2019-10-16 | 2020-01-24 | 北京明略软件系统有限公司 | 一种信息交互方法及装置 |
CN111240847A (zh) * | 2020-01-19 | 2020-06-05 | 网易传媒科技(北京)有限公司 | 数据处理方法、装置、介质和计算设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312192A (zh) * | 2021-06-07 | 2021-08-27 | 平安证券股份有限公司 | 基于窗口的数据同步方法、装置、电子设备及存储介质 |
CN114666317A (zh) * | 2022-04-14 | 2022-06-24 | 广州公评科技有限公司 | 一种基于网页即时通信技术的外呼系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10872127B2 (en) | Method and system of providing for cross-device operations between user devices | |
US9634967B2 (en) | Method and system for embedded personalized communication | |
CN110096660B (zh) | 用于加载页面图片的方法、装置和电子设备 | |
CN107918619B (zh) | 广告展示方法和装置 | |
CN112187887A (zh) | 用于多页面的网页实时通信方法、装置、电子设备 | |
CN114371896B (zh) | 一种基于文档共享的提示方法、装置、设备及介质 | |
CN113568699B (zh) | 一种内容显示方法、装置、设备及存储介质 | |
CN103873519A (zh) | 一种数据同步方法、客户端、服务器、终端和系统 | |
CN106230978A (zh) | 分布式缓存同步方法、装置及系统 | |
CN111246238A (zh) | 直播方法、装置、存储介质及直播系统 | |
CN113938699B (zh) | 基于网页快速建立直播的方法 | |
CN111241438B (zh) | 漫画图片展示方法、装置、计算机可读存储介质和计算机设备 | |
CN107979629A (zh) | 分布式缓存系统及其数据缓存方法和装置 | |
CN108959393B (zh) | 动态图片处理方法、装置及存储介质 | |
CN105577758A (zh) | 一种页面心跳信息处理方法及客户端 | |
CN110688282B (zh) | 网页性能数据的监测、监测任务分发方法及装置 | |
CN113901374A (zh) | 网页刷新方法、装置、电子设备及存储介质 | |
CN104346228A (zh) | 共享应用程序的方法及终端 | |
CN103069387A (zh) | Web内容的下载逻辑 | |
CN113542335A (zh) | 一种信息共享方法、装置、电子设备及存储介质 | |
CN112100555A (zh) | 一种在原生html5页面中实现单页应用的方法及系统 | |
CN113472752B (zh) | 一种权限处理方法、装置、电子设备及存储介质 | |
CN115037991B (zh) | 浏览器视频播放方法、装置、终端设备和可读存储介质 | |
CN116955874B (zh) | 页面处理方法、装置、电子设备和计算机可读存储介质 | |
CN113114698B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210105 |
|
WW01 | Invention patent application withdrawn after publication |