JavaScript — обратные вызовы C ++ не вызываются для привязок узлов

Я застрял. Я впервые использую Node.js и javascript. Я пытался реализовать привязки Node.js для библиотеки, написанной на C ++. Я написал их и протестировал на простом примере консоли, и они сработали. Однако, когда я использую http-сервер, обратные вызовы из библиотеки не вызываются.

Позвольте мне объяснить шаг за шагом. Библиотека получает сообщения HID от устройств асинхронно. Обратные вызовы вызываются в основном потоке. Должен быть цикл обработки событий, который позволяет получать эти сообщения. Так что для Mac OS я просто делаю

CFRunLoopRunInMode(kCFRunLoopDefaultMode, milliseconds/1000.0, false) ;

в цикле while для имитации цикла событий в C ++. Когда я писал привязки с Nan, я думал, что мне не нужна эта часть кода, потому что цикл обработки событий Node возьмет это за меня (когда я просто запускаю сервер). Однако обратные вызовы C ++ не вызываются.

Если я добавлю привязку для запуска CFRunLoopRunInModeЯ получаю сообщения HID, как я хочу, но основной поток заблокирован, и сервер не работает.

Тогда я попытался положить setInterval/setImmediate/setTimeout/nextTick и зовет CFRunLoopRunInMode там. Он работает около ста обратных вызовов (HID-сообщений), и тогда я больше не получаю обратные вызовы C ++.

Я думаю, мне нужно что-то, что управляет обратными вызовами C ++, не блокируя основной поток. Надеюсь, я объяснил достаточно ясно и извините, если я сделал ошибки с терминологией / техническими деталями.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]