2011-04-13 2 views
1

부스트를 사용하여 한 프로세스에서 다른 프로세스로 문자열을 전송해야합니다. 사실 나는 다른 firebreath 플러그인에 메시지를 보낼 수 있어야합니다 firebreath 플러그인 (firebreath는 백엔드에서 부스트를 사용)을 만들려고합니다. 나는 이것이 어떤 사건 메커니즘이어야한다고 생각한다; 보낸 사람 플러그인이 문자열을 보내면 수신 플러그 인에서 이벤트가 발생해야합니다. 그렇게하는 가장 좋은 방법은 무엇입니까?Firebreath의 IPC (부스트 C++)

답변

2

일부 사용자는 boost :: ipc를 사용하도록 제안했지만 다른 사용자는 boost :: ipc가 Windows에서 제대로 작동하지 않는다고 경고했습니다. 나는 boost :: ipc를 시도하지 않았기 때문에 나도 몰라. 한 가지 옵션은 boost :: asio를 사용하여 로컬 소켓 (localhost에 소켓)을 만들고 한쪽에서 듣기위한 스레드를 시작하는 것입니다. Windows에서 또 다른 옵션은 명명 된 파이프를 사용하는 것입니다. 나는 과거에 좋은 성공을 거둔 명명 된 파이프를 사용했습니다.

기억해야 할 주요 사항은 FireBreath의 주 스레드를 차단할 수 없다는 것입니다. 그렇게하면 브라우저 프로세스가 잠기거나 최상의 경우 대화 상자가 나타나 사용자가 원하는 경우 팝업 창이 나타납니다 플러그인을 죽이십시오. 대신 리스너를 처리 할 두 번째 스레드를 만든 다음 페이지에서 알아야 할 일이 발생하면 FireEvent를 호출하십시오.

도 참조 Is Boost IPC any good?