Я работаю над системой, в которой удаленная машина (подключенная к проектору и другому оборудованию) управляется с помощью приложения Meteor. В настоящее время мы используем домашний DDP-клиент, написанный на С++, для этого, но этот подход не так гибкий, как хотелось бы:
- Существует дублирование между С++ и JavaScript.
- Модификации сложны, потому что мы не можем одновременно развертывать сервер и клиент, поэтому нам всегда нужно думать о обратной совместимости и упорядочивании.
Итак, я играю с идеей переписать часть Meteor приложения С++ в JavaScript. В идеале я хотел бы иметь специальный клиент нашего приложения (назовите его headless
, сродни server
и client
), который:
- построен из того же источника, что и остальное приложение Meteor, поэтому мы можем повторно использовать ту же бизнес-логику, что и на сервере и веб-клиенте,
- выполняется в Node.js на клиентской машине, чтобы он мог получить доступ к ОС, и
- не содержит кода браузера, но добавляет другой код, специфичный для управления машиной и связи с приложением С++.
Даже лучше было бы, если бы этот клиент не содержал никакого реального кода, а просто кусок кода начальной загрузки. Загрузочный загрузчик загрузит фактический код приложения с сервера и повторно загрузит его при обновлении сервера так же, как и для клиента HTML. Это упростит обновление, потому что мы можем предположить, что сервер и клиент всегда работают с той же версией.
Есть ли такая вещь? Если нет, то как близко я могу получить без необоснованных усилий? Поиски "метеоритного безголового клиента" и "meteor node client" мне не помогают, а только несколько связанный вопрос, который я мог найти, не получил хорошего ответа.