Nodejs взаимодействует с программой на С++?
Предположим, что у меня есть программа на С++, работающая на том же сервере с веб-сервером Node.js.
Программа Cpp поддерживает очередь, то, что я хочу делать с Node.js, вытащить некоторые данные в очередь.
Какой лучший способ сделать это?
Что лучше? сокетов или IPC?
(os - linux)
Ответы
Ответ 1
Если вы используете Linux, я бы предложил сокеты UNIX-домена. Они в основном дают вам высокую производительность IPC с использованием интерфейса сокетов BSD, что упрощает переход на сокеты TCP позже, если вам нужно переместить приложение С++ (или node.js) на другой компьютер.
Они уже поддерживаются node.js, и только код, который открывает сокет, должен быть изменен. Многие приложения, включая MySQL, легко абстрагируют это в файле конфигурации.
Ответ 2
Я бы использовал сокеты, они чисты и просты в использовании
Ответ 3
Если вы хотите использовать механизм IPC, вы можете рассмотреть возможность создания Node.js С++ module, а затем использовать что-то из библиотека Boost.Interprocess для связи с другим вашим приложением.
Boost.Interprocess имеет уже созданные механизмы для совместного использования контейнеров из стандартной библиотеки. Это также кросс-платформа, если вы хотите быть открытыми для этого в будущем.