CN112749027A - 渲染进程间的通信方法、电子设备以及可读存储装置 - Google Patents

渲染进程间的通信方法、电子设备以及可读存储装置 Download PDF

Info

Publication number
CN112749027A
CN112749027A CN202011632112.0A CN202011632112A CN112749027A CN 112749027 A CN112749027 A CN 112749027A CN 202011632112 A CN202011632112 A CN 202011632112A CN 112749027 A CN112749027 A CN 112749027A
Authority
CN
China
Prior art keywords
message
rendering process
rendering
communication
processing
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.)
Pending
Application number
CN202011632112.0A
Other languages
English (en)
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.)
Shenzhen Xunlei Network Technology Co Ltd
Original Assignee
Shenzhen Xunlei Network Technology Co Ltd
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 Shenzhen Xunlei Network Technology Co Ltd filed Critical Shenzhen Xunlei Network Technology Co Ltd
Priority to CN202011632112.0A priority Critical patent/CN112749027A/zh
Publication of CN112749027A publication Critical patent/CN112749027A/zh
Pending legal-status Critical Current

Links

Images

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/546Message passing systems or structures, e.g. queues
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

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 And Data Communications (AREA)

Abstract

本申请公开了渲染进程间的通信方法、电子设备以及计算机可读存储装置。通信方法包括:第一渲染进程与第二渲染进程建立通信连接;第一渲染进程将第一消息进行序列化处理,并发送给第二渲染进程,以使得第二渲染进程对第一消息进行相应的处理。通过上述方法,本申请能够减少对主进程造成的堵塞。

Description

渲染进程间的通信方法、电子设备以及可读存储装置
技术领域
本申请涉及进程通信技术领域,尤其涉及渲染进程间的通信方法、电子设备以及计算机可读存储装置。
背景技术
随着信息技术的不断发展,客户端应用领域出现了多种客户端构建框架,其中,Electron框架就是使用WEB(World Wide Web)编程语言开发应用程序的框架。
本申请的发明人经研究发现,在Electron框架中,实际应用某些场景中需要基于渲染进程之间进行通信,但由于渲染进程之间不属于父子进程,通过主进程进行中转,导致通信效率低,还容易造成主进程过于繁忙和堵塞,最终导致程序运行卡顿。
发明内容
本申请主要解决的技术问题是提供渲染进程间的通信方法、电子设备以及计算机可读存储装置,能够有效改善现有技术在进行渲染进程之间的通信时,主进程过于繁忙和堵塞的问题。
为了解决上述问题,本申请采用的第一个技术方案是:提供一种渲染进程间的通信方法,该方法包括:第一渲染进程与第二渲染进程建立通信连接;第一渲染进程将第一消息进行序列化处理,并发送给第二渲染进程,以使得第二渲染进程对第一消息进行相应的处理。
为了解决上述问题,本申请采用的第二个技术方案是:提供一种渲染进程间的通信方法,该方法包括:第二渲染进程与第一渲染进程建立通信连接;第二渲染进程接收经过第一渲染进程进行序列化处理的第一消息进行相应的处理。
为了解决上述问题,本申请采用的第三个技术方案是:提供一种渲染进程间的通信方法,该方法包括:第一渲染进程和第二渲染进程建立通信连接;第一渲染进程将第一消息进行序列化处理,并发送给第二渲染进程;第二渲染进程接收到经过序列化处理的第一消息;第二渲染进程对经过序列化处理的第一消息进行反序列化处理,再进一步进行相应处理得到第二消息;第二渲染进程对第二消息进行序列化处理,并发送给第一渲染进程。
为了解决上述问题,本申请采用的第四个技术方案是:提供一种电子设备,该电子设备包括存储器和处理器,存储器用于存储程序数据,程序数据能够被处理器执行,以实现上述的渲染进程间的通信方法。
为了解决上述问题,本申请采用的又一个技术方案是:提供一种计算机可读存储装置,存储有程序数据,能够被处理器执行,以实现上述的渲染进程间的通信方法。
本申请的有益效果是:通过在渲染进程间建立通信连接,进而第一渲染进程将其所要发送的第一消息进行序列化,如此无需经过主进程进行序列化,主进程也无需干涉第一渲染进程的序列化,进而第一消息也就无需由主进程进行中转,而可以直接发送给第二渲染进程,实现了两个渲染进程之间的通信和直接数据交互,主进程可以去计算其他任务,减少主进程的堵塞,进而提高程序的运行速度,提高运行效率。
附图说明
图1是本申请电子设备实施例的电路结构示意框图;
图2是本申请渲染进程间的通信方法第一实施例的时序示意图;
图3是本申请渲染进程间的通信方法第二实施例的流程示意图;
图4是本申请渲染进程间的通信方法第三实施的流程示意图;
图5是本申请存储装置实施例的结构示意框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在Electron框架下,可以通过使用JavaScript、HTML和CSS创建桌面应用程序。然后,这些应用程序可以打包在macOS、Windows和Linux上直接运行。
Electron框架的进程核心主要分为两部分:主进程和渲染进程。主进程是所有窗口的父进程,负责调度各种资源,负责创建页面窗口,协调进程间通信,事件分发等。渲染进程用于其对应的页面窗口的渲染过程。渲染进程之间相互独立,并依附于主进程。这种主从进程模型的缺点非常明显,如果主进程崩溃或者阻塞,将影响整个程序的响应。涉及多页面或多窗口的Electron应用,IPC(进程间通信)会非常频繁,导致处理性能下降。本申请的发明人研究发现,Electron框架的进程间通信常用的通信方式有:
1.remote:Electron框架自带的模块,提供了同步的通信方式,通信核心为主进程。本申请的发明人发现,为了确保能够获取到最新的值,动态获取属性,remote底层不做缓存,进程通信开销大。同步通信方式容易造成通信阻塞,造成程序卡顿。
2.ipcMain、ipcRender:Electron框架自带的模块,提供了同步和异步的通信方式,通信核心为主进程。本申请的发明人发现,异步调用“扁平”化支持较弱、回调的使用使得代码逻辑复杂化,程序健壮性下降。
3.使用Node的child_process模块,适用于父子进程通信,但是数据量大时存在明显的性能问题。
综上所述,本申请的发明人基于对于现有技术的不断研究发现,Electron框架大部分的通信都需要由主进程参与,而且是通信核心,如此导致主进程的资源时常被大量占用而导致堵塞,进而导致应用程序的运行缓慢或者卡顿,而且渲染进程之间的通信需要主进程作为通信核心参与而效率极低,渲染进程之间不是父子进程,也无法利用child_process模块实现通信。渲染进程之间的直接通信一直都是行业难题。为了改善上述技术问题,本申请提出如下实施例:
如图1所示,本申请电子设备实施例描述的电子设备10可以是电脑、手机、平板电脑、服务器或智能穿戴设备等。电子设备10可以包括处理器100和存储器200,还可以包括显示器300。处理器100可以通过通讯总线与存储器200和显示器300连接。
处理器100用于控制电子设备的操作,处理器100还可以称为CPU(CentralProcessing Unit,中央处理单元)。处理器100可以是一种集成电路芯片,具有信号的处理能力。处理器100还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器200可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM,等等。存储器200可以存储有程序数据,程序数据例如可包括单条指令、或许多条指令,且可分布在若干不同的代码段上,分布在不同的程序间以及跨多个存储器200分布。存储器200可被耦接到处理器100以使得该处理器100能从/向该存储器200读写信息。当然,存储器200可以被整合到处理器100中。
显示器300用于电子设备10的显示,例如显示应用程序的页面等。
处理器100可以用于执行存储器200中的程序数据,进而实现下述本申请渲染进程间的通信方法第一至第三实施例所描述的通信方法。
参阅图2,本申请渲染进程间的通信方法第一实施例描述的通信方法,基于前述提及的Electron框架,可以适用于两个或者多个渲染进程之间的通信,具体可以包括如下步骤:
S11:第一渲染进程与第二渲染进程建立通信连接。
第一渲染进程和第二渲染进程是Electron框架中的任意两个渲染进程,可以是同一个应用程序的渲染进程,也可以分别是不同应用程序的渲染进程。第一渲染进程和第二渲染进程是两个相互独立的渲染进程。第一渲染进程和第二渲染进程在进行数据交互之前需要建立通信连接。
对于如何建立渲染进程之间的通信连接可以通过如下步骤实现:
S111:第一渲染进程发送通信连接请求给第二渲染进程。
S112:第二渲染进程监听到通信连接请求时,建立与第一渲染进程之间的通信连接。
通信连接请求是第一渲染进程用于请求第二渲染进程所发送的信息,第二渲染进程可以在监听其他渲染进程的通信连接请求。若第二渲染进程监听到第一渲染进程的通信连接请求,即允许第一渲染进程连接到第二渲染进程。
具体地,第二渲染进程可以创建相应的网络连接服务,该网络连接服务可以用于监听其所对应的通信端口。例如,第二渲染进程可以创建net.Server类,其可以设置成connection Listener(连接事件监听器),用于监听连接事件。第二渲染进程对应的通信端口,例如为socket(套接字)。第一渲染进程可以通过其所对应的通信端口发送通信连接请求至第二渲染进程对应的通信端口。第一渲染进程对应的通信端口例如为socket。
第二渲染进程的网络连接服务监听到第二渲染进程对应的通信端口收到通信连接请求时,可以建立其与第一渲染进程之间的通信连接,第一渲染进程可以连接到网络连接服务。第一渲染进程和第二渲染进程的通信连接建立成功。
第一渲染进程和第二渲染进程之间的通信连接可以是双工通道。
当然,第一渲染进程和第二渲染进程之间的通讯方式除了上述的socket外,还可以是其他类型的通讯方式,比如管道、FIFO(命名管道)、消息队列和共享内存中的一者或者多者。
S12:第一渲染进程将第一消息进行序列化处理。
序列化处理是将对象的状态信息转换成可以存储或者传输的形式的过程。第一渲染进程将第一消息进行序列化,那么第一消息的所有字段都可以被序列化,第一消息则变成了序列化数据。
通过在渲染进程间建立通信连接,进而第一渲染进程将其所要发送的第一消息进行序列化,如此无需经过主进程进行序列化,主进程也不干涉第一渲染进程的第一消息的序列化,如此也就无需主进程转发第一消息,而可以直接发送给第二渲染进程,实现了两个渲染进程之间的通信和直接数据交互,能够节省主进程的计算资源,可以去计算其他任务,减少主进程的堵塞,进而提高程序的运行速度,提高运行效率。
可选地,第一渲染进程将第一消息进行序列化处理,具体可以通过如下步骤实现:
S121:第一渲染进程可以将第一消息编码成JSON格式的字符串,以实现序列化处理。
第一消息编码成JSON格式,则可以以JSON格式的字符串发送给第二渲染进程。JSON格式属于轻量级的文本数据交换格式,能够有效提升第一渲染进程和第二渲染进程之间的数据传输速度。
通过第一渲染进程将第一消息编码成JSON(Java Script Object Notation)格式的字符串,能够简单有效地实现第一消息的序列化,进而无需主进程干涉第一消息的序列化过程,进而第一消息也无需经过主进程的中转,有效地实现第一渲染进程和第二渲染进程之间的数据交互,节省主进程的资源。
S122:第一渲染进程对第一消息配置消息标志位,以使得经过序列化处理后的第一消息携带有消息标志位。
消息标志位用于标识第一消息,便于第二渲染进程对第一消息进行处理后,能够返回对应的回复,进而使得第一渲染进程能够识别出与第一消息对应的回复。消息标志位可以采用与JSON字符串相同数字格式的字符进行表示。
S13:第一渲染进程将序列化处理后的第一消息发送给第二渲染进程。
具体地,第一渲染进程将序列化处理后且带有消息标志位的第一消息发送给第二渲染进程。通过第一渲染进程对第一消息配置消息标志位,有利于第一渲染进程和第二渲染进程之间的通信过程的通信路径更加清晰化,对应进而可以支持异步调用的扁平化。
S14:第二渲染进程接收序列化后的第一消息,并进行反序列化处理。
反序列化处理是指将序列化数据还原成原本的字段,也即从序列化数据中提取原本的数据。具体地,第二渲染进程将经第一渲染进程序列化处理后的第一消息进行反序列化处理,进而得到第一消息原本的数据,进而可以对第一消息进行解析和相应的处理。
具体地,第二渲染进程接收到经第一渲染进程序列化后的第一消息,并对序列化后的第一消息进行反编码,将JSON格式的字符串提取出原本的数据。
S15:第二渲染进程对经过反序列化处理的第一消息进行相应的处理,并生成第二消息。
相应处理例如可以为解析、信息共享以及执行与第一消息对应的动作等。渲染进程之间的通信所涉及到的处理和功能等可以参见现有技术中渲染进程之间通过主进程进行通信所涉及的处理和功能,在此不做限定。第二渲染进程对第一消息进行相应的处理后,可以生成答复消息,也即第二消息。第二消息用于应答或者回复给第一渲染进程。
S16:第二渲染进程将第二消息进行序列化处理。
第二渲染进程将其所要发送的第二消息进行序列化,如此也无需经过主进程进行序列化,就无需主进程转发第二消息,可以实现第一渲染进程和第二渲染进程之间的双向直接通信,能够节省主进程的计算资源,提高运行效率。
可选地,第二渲染进程将第二消息进行序列化处理,具体可以通过如下步骤实现:
S161:第二渲染进程可以将第二消息编码成JSON格式的字符串,以实现序列化处理。
第二消息编码成JSON格式,则可以以JSON格式的字符串发送给第一渲染进程。JSON格式属于轻量级的文本数据交换格式,能够有效提升第一渲染进程和第二渲染进程之间的数据传输速度。
通过第二渲染进程将第二消息编码成JSON(JavaScript Object Notation)格式的字符串,能够简单有效地实现第二消息的序列化,进而无需主进程干涉第二消息的序列化过程,进而第二消息也无需经过主进程的中转,有效地实现第一渲染进程和第二渲染进程之间的数据交互,节省主进程的资源。
S162:第二渲染进程对第二消息配置消息标志位,以使得经过序列化处理后的第二消息携带有消息标志位。
在此步骤中,第二消息所携带的消息标志位与步骤S122中第一消息所携带的消息标志位相同,用于标识第一消息。以便于第一渲染进程接收到第二消息后,能够识别该第二消息是否是对第一消息的应答或者回复,使得通信路径清晰化。
S17:第二渲染进程将序列化处理后的第二消息发送给第一渲染进程。
具体地,第二渲染进程将序列化处理后且带有消息标志位的第二消息发送给第二渲染进程。通过第一渲染进程对第一消息配置消息标志位,有利于第一渲染进程和第二渲染进程之间的通信过程的通信路径更加清晰化,对应进而可以支持异步调用的扁平化。
S18:第一渲染进程接收经过序列化的第二消息,判断经过序列化处理的第二消息是否携带消息标志位。
第一渲染进程接收到第二渲染进程发送的第二消息后,可以对第二消息进行判断,判断其是否携带消息标志位,进而可以得出其是否是对应于第一消息,是否是对第一消息的回复。若是,则执行下述步骤S19。
S19:判定第二消息是与第一消息对应的,并对经过序列化处理后的第二消息进程反序列化处理。
如此通过对消息标志位的判断,第一渲染进程能够有效地判断第二消息是否是第二渲染进程对第一消息的应答。在判定为是的情况下,继续后续的反序列处理以及其他相应处理。在判定为不是的情况下,可以不对第二消息进行处理,进而可以节省第一渲染进程的资源,若在判定为不是的情况,仍然进行反序列化等处理的话,会浪费第一渲染进程的资源,影响其运行效率。
上述本实施例的通信方法,不仅可用于Electron的进程之间的通信,还可支持纯Node环境的进程通信,不受限于进程之间的继承关系,能够平级之间的渲染进程能够直接通信,还适用于不同应用程序之间的进程。通过上述方法,渲染进程之间的通信缩短了通信路径,可实现不同应用间的进程通信,通信过程快速高效,节约主进程的资源,减少了程序卡顿的可能。
以下示意一个具体示例,对本实施例的方案进行示例性说明:
以迅雷客户端和迅雷影音为例,两个应用程序之间的IPC通信。例如,迅雷客户端登录有一账户,在该账户下进行使用。若迅雷客户端和迅雷影音之间需要共享这个账户信息,以常规的通信方式,需要经过主进程进行中转。
通过本实施例的上述步骤,迅雷影音可以作为第一渲染进程对应的应用程序,迅雷客户端可以作为第二渲染对应的应用程序。第一渲染进程例如对应管理迅雷影音的账户登陆页面,第二渲染进程例如对应管理迅雷客户端的账户登陆页面。
迅雷影音的第一渲染进程可以生成共享请求信息,即第一消息,并将其序列化以及配置相应的消息标志位后,发送给迅雷客户端的第二渲染进程。
迅雷客户端的第二渲染进程接收到共享请求信息后,将其进行反序列化处理,得到共享请求信息原本的数据,并进行解析、执行等操作,并响应该共享请求信息进而读取账户信息作为第二消息。
迅雷客户端的第二渲染进程将账户信息进行序列化,并发送给迅雷影音的第一渲染进程。
迅雷影音的第一渲染进程接收到账户信息后,对账户信息进行反序列化处理,得到账户信息原本的数据,进而可以使得迅雷影音可以将该账户信息配置在其账户登陆页面,实现账户登陆,第一渲染进程也可以相应渲染出登陆后的页面。
通过本实施例描述的通信方法,可以无需主进程干涉第一渲染进程和第二渲染进程之间通信消息的序列化,也无需主进程对消息进行中转,实现了两个渲染进程之间的通信和直接数据交互,能够节省主进程的计算资源,减少主进程的堵塞,进而提高程序的运行速度和运行效率。
本申请渲染进程间的通信方法第二实施例是在上述本申请渲染进程间的通信方法第一实施例的基础上,以第一渲染进程为视角,进行描述。如图3所示,本实施例具体可以包括如下步骤:
S21:第一渲染进程与第二渲染进程建立通信连接。
S22:第一渲染进程将第一消息进行序列化处理,并发送给第二渲染进程,以使得第二渲染进程对第一消息进行相应的处理。
可选地,步骤S22中第一渲染进程将第一消息进行序列化处理,可以包括:第一渲染进程将第一消息编码成JSON格式的字符串,以实现序列化处理。
可选地,在步骤S22的第一渲染进程将第一消息进行序列化处理之后,可以包括:第一渲染进程对第一消息配置消息标志位,以使得经过序列化处理后的第一消息携带有消息标志位。
可选地,在步骤S22之后,可以包括:接收第二渲染进程发送的经过序列化处理的第二消息,第二消息是第二渲染进程对所接收到的第一消息进行反序列化处理后进行相应处理而得到。
可选地,在上述接收第二渲染进程发送的经过序列化处理的第二消息之后,包括:判断经过序列化处理的第二消息是否携带消息标志位;若是,则判定第二消息是与第一消息对应的,并对经过序列化处理后的第二消息进行反序列化处理。
可选地,步骤S21,可以包括:第一渲染进程发送通信连接请求给第二渲染进程,以在第二渲染进程监听到通信连接请求时,建立与第一渲染进程之间的通信连接。
关于本实施例上述步骤的描述可以参见本申请渲染进程间的通信方法第一实施例中的详细描述,在此不再赘述。
本申请渲染进程间的通信方法第三实施例是在上述本申请渲染进程间的通信方法第一实施例的基础上,以第二渲染进程为视角,进行描述。如图4所示,本实施例具体可以包括如下步骤:
S31:第二渲染进程与第一渲染进程建立通信连接。
S32:第二渲染进程接收经过第一渲染进程进行序列化处理的第一消息进行相应的处理。
可选地,第二渲染进程对经过反序列化处理的第一消息进行相应的处理,并生成第二消息。
可选地,在生成第二消息后,第二渲染进程可以将第二消息进行序列化处理。具体地,第二渲染进程可以将第二消息编码成JSON格式的字符串,以实现序列化处理。
可选地,第二渲染进程对第二消息配置消息标志位,以使得经过序列化处理后的第二消息携带有消息标志位。
可选地,第二渲染进程将序列化处理后的第二消息发送给第一渲染进程。具体地,第二渲染进程可以通过可以将序列化处理后且带有消息标志位的第二消息发送给第二渲染进程。
关于本实施例上述步骤的描述可以参见本申请渲染进程间的通信方法第一实施例中的详细描述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的电子设备和渲染进程间的通信方法,可以通过其它的方式实现。例如,以上所描述的各实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读的存储装置中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储装置中,具有包括若干指令(程序数据)用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。如图5所示,而前述的存储装置可以被计算机所读取,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种计算机可读存储装置20以及具有上述存储装置的电脑、手机、笔记本电脑、平板电脑、相机等电子设备。
综上所述,上述实施例通过在渲染进程间建立通信连接,进而第一渲染进程将其所要发送的第一消息进行序列化,如此无需经过主进程进行序列化,也无需主进程对消息进行中转,进而可以直接发送给第二渲染进程,实现了两个渲染进程之间的通信和直接数据交互,主进程可以去计算其他任务,减少主进程的堵塞,进而提高程序的运行速度,提高运行效率。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种渲染进程间的通信方法,其特征在于,包括:
第一渲染进程与第二渲染进程建立通信连接;
所述第一渲染进程将第一消息进行序列化处理,并发送给所述第二渲染进程,以使得所述第二渲染进程对所述第一消息进行相应的处理。
2.根据权利要求1所述的通信方法,其特征在于:
所述第一渲染进程将第一消息进行序列化处理,包括:
所述第一渲染进程将所述第一消息编码成JSON格式的字符串,以实现序列化处理。
3.根据权利要求1或2所述的通信方法,其特征在于:
所述第一渲染进程将第一消息进行序列化处理之后,包括:
所述第一渲染进程对所述第一消息配置消息标志位,以使得经过序列化处理后的所述第一消息携带有所述消息标志位。
4.根据权利要求3所述的通信方法,其特征在于:
所述第一渲染进程将第一消息进行序列化处理,并发送给所述第二渲染进程之后,包括:
接收所述第二渲染进程发送的经过序列化处理的第二消息,所述第二消息是所述第二渲染进程对所接收到的所述第一消息进行反序列化处理后进行相应处理而得到。
5.根据权利要求4所述的通信方法,其特征在于:
所述接收所述第二渲染进程发送的经过序列化处理的第二消息之后,包括:
判断经过序列化处理的所述第二消息是否携带所述消息标志位;
若是,则判定所述第二消息是与所述第一消息对应的,并对经过序列化处理后的所述第二消息进行反序列化处理。
6.根据权利要求1所述的通信方法,其特征在于:
所述第一渲染进程与第二渲染进程建立通信连接,包括:
第一渲染进程发送通信连接请求给所述第二渲染进程,以在所述第二渲染进程监听到所述通信连接请求时,建立与所述第一渲染进程之间的通信连接。
7.一种渲染进程间的通信方法,其特征在于,包括:
第二渲染进程与第一渲染进程建立通信连接;
所述第二渲染进程接收经过所述第一渲染进程进行序列化处理的第一消息进行相应的处理。
8.一种渲染进程间的通信方法,其特征在于,包括:
第一渲染进程和第二渲染进程建立通信连接;
所述第一渲染进程将第一消息进行序列化处理,并发送给所述第二渲染进程;
所述第二渲染进程接收到经过序列化处理的所述第一消息;
所述第二渲染进程对经过序列化处理的所述第一消息进行反序列化处理,再进一步进行相应处理得到第二消息;
所述第二渲染进程对所述第二消息进行序列化处理,并发送给所述第一渲染进程。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储程序数据,所述程序数据能够被所述处理器执行,以实现如权利要求1-8任一项所述的方法。
10.一种计算机可读存储装置,其特征在于,存储有程序数据,能够被处理器执行,以实现如权利要求1-8任一项所述的方法。
CN202011632112.0A 2020-12-31 2020-12-31 渲染进程间的通信方法、电子设备以及可读存储装置 Pending CN112749027A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011632112.0A CN112749027A (zh) 2020-12-31 2020-12-31 渲染进程间的通信方法、电子设备以及可读存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011632112.0A CN112749027A (zh) 2020-12-31 2020-12-31 渲染进程间的通信方法、电子设备以及可读存储装置

Publications (1)

Publication Number Publication Date
CN112749027A true CN112749027A (zh) 2021-05-04

Family

ID=75650931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011632112.0A Pending CN112749027A (zh) 2020-12-31 2020-12-31 渲染进程间的通信方法、电子设备以及可读存储装置

Country Status (1)

Country Link
CN (1) CN112749027A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662775A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种进程通信方法和装置
CN105677495A (zh) * 2016-02-24 2016-06-15 京信通信技术(广州)有限公司 进程间通信方法和系统
CN109933443A (zh) * 2019-03-07 2019-06-25 腾讯科技(深圳)有限公司 进程间通信方法、装置、计算机设备及可读存储介质
CN110399229A (zh) * 2018-04-25 2019-11-01 清华大学 进程间的通信方法、装置、系统、介质及终端
CN110851288A (zh) * 2019-10-17 2020-02-28 腾讯科技(深圳)有限公司 消息处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662775A (zh) * 2012-03-29 2012-09-12 奇智软件(北京)有限公司 一种进程通信方法和装置
CN105677495A (zh) * 2016-02-24 2016-06-15 京信通信技术(广州)有限公司 进程间通信方法和系统
CN110399229A (zh) * 2018-04-25 2019-11-01 清华大学 进程间的通信方法、装置、系统、介质及终端
CN109933443A (zh) * 2019-03-07 2019-06-25 腾讯科技(深圳)有限公司 进程间通信方法、装置、计算机设备及可读存储介质
CN110851288A (zh) * 2019-10-17 2020-02-28 腾讯科技(深圳)有限公司 消息处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
内容为王自品牌: "Electron进程间通讯【三】渲染进程之间通讯", pages 1 - 3, Retrieved from the Internet <URL:https://jingyan.baidu.com/article/46650658dca677f549e5f890.html> *

Similar Documents

Publication Publication Date Title
CN106991154B (zh) 网页渲染方法、装置、终端及服务器
CN107223264B (zh) 一种渲染方法及装置
CN112260853B (zh) 容灾切换方法、装置、存储介质及电子设备
CN109697055B (zh) 生成移动App页面的方法及系统
EP4357901A1 (en) Data writing method and apparatus, data reading method and apparatus, and device, system and medium
CN114116092A (zh) 云桌面系统处理方法、云桌面系统控制方法以及相关设备
CN112966200A (zh) 一种服务降级方法和渲染服务器
CN111274044B (zh) Gpu虚拟化资源限制处理方法及装置
US9614900B1 (en) Multi-process architecture for a split browser
KR20120072134A (ko) 가상 데스크톱 가속 장치 및 방법
CN117931478A (zh) 进程间通信方法、装置及存储介质
CN113569173A (zh) 页面加载方法及装置、存储介质、电子设备
CN112749027A (zh) 渲染进程间的通信方法、电子设备以及可读存储装置
CN116781586A (zh) 一种gRPC流量解析方法、装置、设备及介质
CN116521639A (zh) 一种日志数据的处理方法、电子设备和计算机可读介质
CN116244231A (zh) 一种数据传输方法、装置、系统、电子设备及存储介质
CN112910910B (zh) Opcda协议报文处理方法、装置、设备以及存储介质
CN113079152B (zh) 一种数据传输方法、装置及介质
US20140156736A1 (en) Apparatus and method for managing threads to perform divided execution of software
CN111937366B (zh) Web请求处理方法和装置
CN114595080A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN114116263A (zh) 用于浏览器中多页签通信的系统、方法、设备及介质
CN114363988A (zh) 分簇方法、装置和电子设备
CN113849449A (zh) 一种通信系统和信息交互方法、设备和介质
CN113781154A (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