Chromium Mojo通信

Mojo 是一个跨平台 IPC 框架,它诞生于 chromium ,用来实现 chromium 进程内/进程间的通信。目前,它也被用于 ChromeOS。

在我们代码应用中,如何使用Mojo来作进程间的通信呢,下面就手把手教你怎么使用Mojo!

1. 初始化 Mojo

初始化Mojo有两种方式,一种适用于静态链接Mojo的程序,一种适用于动态链接Mojo的程序。以下是静态链接时的初始化方法,动态链接时只需要把mojo::core::Init()替换为MojoInitialize()即可。

初始化接口的头文件为:

初始化方法如下:

2. Mojo C API所在的头文件

3. 在单进程中使用MessagePipe 发送消息

4. 在单进程中使用MessagePipe 接收消息

5. 多进程使用Mojo

一个MessagePipe中有一对handle,分别是handle0和handle1,向其中一个handle写的数据可以从另外一个handle读出来,这是前面已经说过的,如果把其中的一个handle发送到另外一个进程,这一对handle之间依然能够相互收发数据。Mojo提供了多种方法来发送handle到其他的进程,其中最简单的是使用 Invitation。

要在多个进程间使用Mojo,必须先通过Invitation将这些进程"连接"起来,这需要一个进程发送Invitation,另一个进程接收Invitation,发送Invitation的方法如下:

6. 新进程中接收Invitation的方法

这样就实现了将pipe中的一个handle发送到其他进程了,这两个进程可以开始使用pipe进行收发数据了。

相关推荐
林鸿群1 个月前
macOS26.2编译Chromium源码iOS平台
chrome·ios·chromium·源码编译
林鸿群1 个月前
Ubuntu 25.10编译Chromium源码
linux·chrome·ubuntu·chromium·源码编译
林鸿群1 个月前
window编译chromium源码
chrome·chromium·源码编译
TA远方1 个月前
【WPF】桌面程序使用谷歌浏览器内核CefSharp控件详解
wpf·浏览器·chromium·控件·cefsharp·cefsharp.wpf
TeamDev3 个月前
从 CefSharp 迁移至 DotNetBrowser
webview·webview2·chromium·microsoft edge·cefsharp·dotnetbrowser·嵌入式浏览器
守城小轩7 个月前
Chromium 136 编译指南 macOS篇:获取源代码(四)
chrome devtools·chromium·浏览器开发·超级浏览器·浏览器编译
TeamDev8 个月前
DotNetBrowser 3.2.0 版本发布啦!
.net·dotnet·chromium·winforms·dotnetbrowser·avalonia ui·user agent
如意IT9 个月前
3.Chromium指纹浏览器开发教程之chromium119版本源码拉取
js逆向·chromium·指纹浏览器·浏览器开发
一丝晨光1 年前
Chrome和Chromium的区别?浏览器引擎都用的哪些?浏览器引擎的作用?
前端·c++·chrome·webkit·chromium·blink·trident
甄齐才1 年前
在 Windows8.1 下编译 Chromium (103.0.5060.68 之三)
chromium·git clone·gclient sync·fetch chromium·depot_tools·build chromium