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进行收发数据了。

相关推荐
TeamDev16 天前
DotNetBrowser 3.2.0 版本发布啦!
.net·dotnet·chromium·winforms·dotnetbrowser·avalonia ui·user agent
如意IT1 个月前
3.Chromium指纹浏览器开发教程之chromium119版本源码拉取
js逆向·chromium·指纹浏览器·浏览器开发
一丝晨光6 个月前
Chrome和Chromium的区别?浏览器引擎都用的哪些?浏览器引擎的作用?
前端·c++·chrome·webkit·chromium·blink·trident
甄齐才8 个月前
在 Windows8.1 下编译 Chromium (103.0.5060.68 之三)
chromium·git clone·gclient sync·fetch chromium·depot_tools·build chromium
亿牛云爬虫专家8 个月前
利用Puppeteer-Har记录与分析网页抓取中的性能数据
chrome·node.js·浏览器·爬虫代理·puppeteer·chromium·代理ip
守城小轩1 年前
Chromium 开发指南2024 Mac篇-编译前的准备工作(一)
chrome·chrome devtools·chromium
守城小轩1 年前
Chromium 调试指南2024 Mac篇 - 调试 Chromium(三)
chrome·chrome devtools·chromium
守城小轩1 年前
Chromium 开发指南2024 Mac篇-Xcode安装(二)
chrome·chrome devtools·chromium
守城小轩1 年前
Chromium 调试指南2024 Mac篇 - 准备工作 (一)
chrome·chrome devtools·chromium
守城小轩1 年前
Chromium 调试指南2024 Mac篇 - 常见问题及解决方法(四)
chrome·chrome devtools·chromium