1

기본적으로 내가하고 싶은 것은 하나의 프로세스 인 애플리케이션을 항상 열어두고 Chrome의 기본 메시징을 수신하는 스레드가 있습니다.여러 크롬 네이티브 메시지를 수신하기 위해 C#에서 단일 프로세스 만들기

크롬은 각 기본 메시지에 대해 별도의 프로세스를 실행합니다. 하나의 프로세스를 만들기 위해 뮤텍스를 사용한다면, 먼저 적절한 매개 변수를 사용하여 프로세스를 다시 시작해야하기 때문에 기본 프로세스에 표준 입력을 전달할 수 없습니다. Chrome은 이와 유사하게 여러 프로세스를 수행합니다.

Chrome의 메시지의 주요 프로세스를 알리기 위해 소켓이나 비슷한 것을 통해 통신하는 중간 프로세스가 있어야합니다. 이 경우인가요? 단일 프로세스를 사용하여이를 구현할 수있는 방법이 있습니까?

입력 사항을 알려주세요.

사이드 메모로 Chrome은 기본 메시지 처리 앱 프로세스를 자동으로 실행합니다 (표시하지 않음). 이 일이 내가 잘못한 일입니까, 아니면 정상입니까?

답변

2

chrome.runtime.connectNative를 사용하면 장시간 실행되는 기본 인스턴스를 만들 수 있습니다. 그런 다음 재사용 할 수 있도록 자바 스크립트 참조를 백그라운드 스크립트에 유지해야합니다.

manifest.json;

"background": {"scripts": ["background.js"]}, 

background.js;

var nativePort = null; 
function getNativePort(){ 
    if (nativePort == null) 
    nativePort = chrome.runtime.connectNative("..."); 
} 

콘텐츠 스크립트에서 메시지를 보내려면 먼저 배경 스크립트로 전달해야합니다.