1

Chrome 拡張機能を作成し、Native Messagingを使用して C++ ネイティブ アプリケーションに接続しました。

ただし、Chrome 拡張機能がネイティブ ホストに送信するメッセージごとに、新しいホスト exe インスタンスが作成されます。ホストにたくさんのメッセージを送るので効率が悪いと思います。

Chrome 拡張機能とネイティブ メッセージング ホストとの間に長期間接続する方法はありますか?

4

1 に答える 1

1

を使用してメッセージを送信するか、メッセージごとにchrome.runtime.sendNativeMessage新しい Port オブジェクトを作成する場合、はい、非効率的です。chrome.runtime.connectNative

の目的はchrome.runtime.connectNative、再利用できるメッセージ ポートを作成して開いたままにすることです。ネイティブ ホストが Chrome が期待する方法で動作し、接続自体を閉じない限り、その接続は長続きします。

function connect(messageHandler, disconnectHandler){
  var port = chrome.runtime.connectNative('com.my_company.my_application');
  if(disconnectHandler) { port.onDisconnect.addListener(disconnectHandler); }
  if(messageHandler) { port.onMessage.addListener(messageHandler); }
  return port;
}

var hostPort = connect(/*...*/);
port.postMessage({ text: "Hello, my_application" });

// Goes to the same instance
port.postMessage({ text: "P.S. I also wanted to say this" });

// If you want to explicitly end the instance
port.disconnect();
于 2014-08-12T10:00:13.137 に答える