问题描述
|
我需要使用Boost将字符串从一个进程发送到另一个进程。实际上,我正在尝试创建一个firebreath插件(firebreath在其后端使用Boost),该插件应该能够将消息发送到另一个firebreath插件。我认为这应该是某种事件机制。当发送方插件发送字符串时,应该在接收方插件中触发一个事件。最好的方法是什么?
解决方法
有些人建议使用boost :: ipc,另一些人警告说boost :: ipc在Windows上无法正常工作。我自己没有尝试过boost :: ipc,所以我不知道。一种选择是使用boost :: asio创建一个本地套接字(本地主机上的套接字)并启动线程以监听一侧; Windows上的另一种选择是使用命名管道。过去,我使用命名管道非常成功。
要记住的主要事情是,您不能在FireBreath中阻止主线程-如果这样做,则会锁定浏览器进程,或者在最佳情况下会弹出对话框,询问用户是否要杀死您的主机。插入。相反,创建第二个线程来处理侦听器,然后在您的页面需要知道的事情发生时调用FireEvent。
另请参见Boost IPC有什么好处吗?