采用AsyncIpc这个项目(https://github.com/hicdre/AsyncIpc),来完成PPAPI Plugin进程与Browser进程的通信。
foruok原创,如需转载请关注foruok的微信订阅号“程序视界”联系foruok。
AsyncIpc的IPC实现基于管道,是参考Chromium的IPC代码而来,适用于Windows。Chromium在Render和Browser进程间就使用类似的IPC机制,每一个Render都会与Browser建立一个双向的Channel。AsyncIpc采用类似的概念,抽象了Channel用于进程间通信。
基本用法
介绍下怎么集成AsyncIpc以及关键的类库。
引入方式
AsyncIpc可以编译为静态库和动态库。根据需要,也可以直接把源码加入到项目中。
类库
AyncIpc定义了一个名字空间IPC。IPC::EndPoint代表一个接入点,使用时需要创建一个接入点。当有对端进程接入时,EndPoint会发送一些通知,这些通知通过IPC::Listener接口发送,所以,实现Listener接口即可。
EndPoint类的构造函数原型如下:
Endpoint(const std::string& name, Listener* listener, bool start_now);
它需要一个Listener,所以我们需要先实现Listener接口。IPC::Listener定义如下:
class Lis