#windows #google-chrome #ipc
#Windows #google-chrome #ipc
Вопрос:
Мне нужно иметь канал связи между моим веб-приложением, которое работает в Chrome, и собственным кодом в Windows. Мне нужно запускать собственный код при запросах JS и передавать результаты обратно из собственного кода. Среда полностью управляема, поэтому я могу устанавливать доверительные отношения и групповые политики и т.д.
Я могу подумать о подготовке небольшого веб-сервиса, который запускается локально (и допускает CORS), и вызвать этот сервис из javascript, но в этом случае мне нужно запускать этот код вечно.
Любые советы будут очень полезны. Если это возможно, я могу попробовать запись / чтение реестра Windows, каналы, общую память, MMF или любой другой способ сделать это.
Спасибо
Комментарии:
1. Chrome NaCl позволяет изолированному двоичному файлу C / C взаимодействовать с JavaScript на стороне клиента.
2. Спасибо за ваш ответ @AlexK. Но существуют ли какие-либо дополнительные требования к среде выполнения для NaCl для запуска в Chrome? Я спрашиваю об этом, потому что у нас так много терминалов, и было бы сложно добавить некоторые расширения или внести изменения вручную. Кроме того, может ли среда NaCl с «двойной изолированностью» каким-либо образом взаимодействовать с внешним миром?
Ответ №1:
Есть способ взаимодействовать с локальными процессами без использования расширения. Веб-сокеты не ограничены взаимодействием с тем же доменом, что и веб-страница, они могут взаимодействовать с сервером WebSocket на localhost. Вы должны поместить свой собственный код на сервер WebSocket, хотя для этого доступны библиотеки.
Другим методом является собственный обмен сообщениями, но для него требуется расширение браузера:
Собственные сообщения позволяют WebExtension обмениваться сообщениями с собственным приложением, установленным на компьютере пользователя.
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging
https://developer.chrome.com/extensions/nativeMessaging
Комментарии:
1. Есть ли что-то для того, чтобы расширения браузера взаимодействовали с собственными приложениями? На самом деле я искал способ обмена сообщениями между javascript и собственным приложением
2. Да, это верно, расширение взаимодействует с собственным приложением. Кажется, это единственный способ сделать это напрямую, без обмена данными через центральную (облачную) службу.