Каков наилучший способ установить локальное соединение между собственным клиентским приложением и веб-страницей? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть USB-устройство с несколькими кнопками, которое обменивается данными с хостом (Windows и Mac) через собственный интерфейс управления HID. На хосте у меня есть собственное приложение, связывающееся с устройством (например, получение событий нажатия кнопок или настройка устройства).

Теперь я ищу правильный способ обработки событий кнопок или конфигурации устройства в Javascriptна веб-сайте, работающем в Chrome и, в идеале, в Firefox (и в других браузерах). Итак, мне нужно соединение между Javascript, работающим в браузере, и моим собственным приложением, работающим на клиентской машине.

Мой первый подход - использовать расширения Chrome через собственный обмен сообщениями. Я думаю, что это сделало бы работу, однако могли бы быть некоторые недостатки. Необходимо будет установить и поддерживать два компонента (расширение и собственный узел обмена сообщениями), и он будет ограничен Chrome и, возможно, Firefox (слегка измененный) и будущим Edge на основе Chromium. Кроме того, хотя я уверен, что расширение Chrome способно взаимодействовать с моим собственным приложением, я не уверен, как любая веб-страница может взаимодействовать с расширением, не затрагивая некоторые проблемы безопасности, о которых необходимо позаботиться.

Итак, я думал о соединении через WebSockets. Собственное клиентское приложение может запускать сервер WebSocket, а веб-страница может подключаться к локальному хосту. Например, я видел, как Enpass делал нечто подобное. Но что, если веб-страница https? Разве это не требует установки сертификата на localhost? Это вообще возможно? А как насчет проблем от LetsEncrypt?

Я знаю, что есть несколько вопросов о стекопереработке, нацеленных на эти проблемы, но я пока не нашел удовлетворительных ответов.

1 Ответ

0 голосов
/ 23 октября 2019

Я использовал подход websocket в прошлом. То, что вы можете сделать, - это иметь одно соединение Websocket в фоновом скрипте и использовать передачу сообщений из скрипта контента в фоновый скрипт для отправки сообщений в веб-сокеты. Таким образом, https не будет проблемой (не уверен, что это проблема в противном случае).

Я не уверен, как любая веб-страница может взаимодействовать с расширением, не поднимая некоторые проблемы безопасности, которые требуютнадо позаботиться.

Я никогда не использовал нативные сообщения лично, но я уверен, что все проблемы можно решить, если вы начнете над этим работать и будете задавать конкретные вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...