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++)的主要内容,如果未能解决你的问题,请参考以下文章
Boost IPC Message_Queue try_receive 抛出 interprocess_exception::library_error