связь между native-app и chrome-extension

У меня есть нативное приложение, написанное на c ++ и расширение Chrome.

Я общаюсь между ними с помощью «Chrome native Messaging».

Код родного приложения:

int main(int argc, char* argv[]) {
 unsigned int a, c, i, t=0;
 std::string inp;  do {
 inp="";
 t=0;
 // Sum the first 4 chars from stdin (the length of the message passed).
  for (i = 0; i <= 3; i++) {
    t += getchar();
  }

  // Loop getchar to pull in the message until we reach the total
  //  length provided.
  for (i=0; i < t; i++) {
    c = getchar();
    inp += c;
  }

// Collect the length of the message
unsigned int len = inp.length();
//// We need to send the 4 btyes of length information
std::cout << char(((len>>0) & 0xFF))
          << char(((len>>8) & 0xFF))
          << char(((len>>16) & 0xFF))
          << char(((len>>24) & 0xFF));
//// Now we can output our message
std::cout << inp <<std::endl;
flushall();
}while(cnt < 2 );
return 0;  }

Здесь я читаю сообщение, отправленное расширением chrome на стандартный ввод. и отправив то же сообщение обратно, написав его на стандартный вывод.

Расширение использует PostMessage ()

Это работает ... НО ..

Когда я помещаю свою программу в непрерывный цикл while, поток выполняется только один раз!

то есть port.postMessage ({'text': 'hello_1'}) возвращается, как и ожидалось, но если я это сделаю

port.postMessage ({'text': 'hello_2'}) он не возвращается обратно.

Я не могу понять, в чем проблема. Требуется ли многопоточность?

Пожалуйста помоги!

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос