Firebreath 中的 IPC (boost c++)

Posted

技术标签:

【中文标题】Firebreath 中的 IPC (boost c++)【英文标题】:IPC in firebreath (boost c++) 【发布时间】:2011-04-13 07:17:35 【问题描述】:

我需要使用 Boost 将字符串从一个进程发送到另一个进程。实际上我正在尝试创建一个firebreath 插件(firebreath 在其后端使用 Boost),它应该能够向另一个 firebreath 插件发送消息。我认为应该是某种事件机制;当发送者插件发送字符串时,应该在接收者插件中触发一个事件。最好的方法是什么?

【问题讨论】:

【参考方案1】:

有些人建议使用 boost::ipc,其他人则警告 boost::ipc 在 Windows 上效果不佳。我自己没有尝试过 boost::ipc,所以我不知道。一种选择是使用 boost::asio 创建一个本地套接字(localhost 上的套接字)并启动一个线程在一侧进行侦听; Windows 上的另一个选项是使用命名管道。我过去使用命名管道取得了很大的成功。

要记住的主要事情是,您不能阻止 FireBreath 中的主线程——如果您这样做,它将锁定浏览器进程,或者最好的情况是会弹出一个对话框,询问用户是否要杀死你的插件。相反,创建第二个线程来处理侦听器,然后在您的页面需要知道的事情发生时调用 FireEvent。

另见Is Boost IPC any good?

【讨论】:

以上是关于Firebreath 中的 IPC (boost c++)的主要内容,如果未能解决你的问题,请参考以下文章

php和boost库IPC如何通信?

Boost IPC 等效 (qt?)

Boost IPC Message_Queue try_receive 抛出 interprocess_exception::library_error

IPC 通过两个不同的可执行文件?

带有objective-c ++的Firebreath项目

通过 Firebreath 框架来自 javascript 的 C# 类