общаться между расширением Firefox и приложением .NET - PullRequest
2 голосов
/ 12 ноября 2009

Я ищу лучший способ передачи информации между моим расширением Firefox и приложением .NET. В настоящее время я использую текстовые файлы для передачи информации в приложение .NET с помощью класса FileSystemWatcher. Приложение .NET отслеживает новые файлы в определенном каталоге, когда расширение Firefox записывает в него данные, а затем информация сохраняется в локальной базе данных SQL Server. Теперь я хочу запросить информацию из расширения FF, но у меня не было хорошего способа сделать это, кроме, возможно, использования буфера обмена. Использование текстовых файлов немного неудобно, поэтому любые предложения будут оценены.

1 Ответ

2 голосов
/ 12 ноября 2009

Если вы используете .net 3.5+, рассмотрите возможность использования именованных каналов . Я видел, как они очень эффективно используются для связи между расширением / плагином firefox и приложениями .net с использованием соответствующей библиотеки / DLL. (Плагин Firefox действительно требовал немного собственного кода на C ++)

Другой альтернативой может быть включение какого-либо сервера в ваше приложение и позволить вашему расширению Firefox взаимодействовать с ним через сокеты / tcp. Если вы используете HTTP в качестве протокола, вы могли бы общаться, выполняя такие действия, как нажатие http://localhost:12345/getdata?id=1 со своего внутреннего номера. Общение через HTTP должно быть относительно простым с обеих сторон, но обязательно сделайте хорошую модель угроз, чтобы вы могли идентифицировать и смягчить любые проблемы безопасности, возникающие при запуске сервера на коробке.

Помимо этого, я бы выполнил поиск .net / windows IPC и увидел бы, какие другие механизмы Windows IPC могли бы подойти. Они должны быть более надежными, чем написание текстовых файлов и ключей реестра. (Я предвижу, что маршрут буфера обмена будет очень хрупким.) Этот вопрос может быть хорошим началом.

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