Как реализовать связь между браузером и бэкэндом? - PullRequest
0 голосов
/ 06 ноября 2010

У меня есть бэкэнд-программа, которая должна иметь возможность взаимодействовать с веб-браузером на основе Gecko (и наоборот). Каков наилучший способ понять это? Поскольку HTTP довольно односторонний (за исключением, например, обратного AJAX, который я считаю довольно «хакерским»), мне интересно, как это сделать.

Будет ли возможным создание плагина на основе NPAPI? На основе данных, которыми обмениваются браузер и серверная часть, браузер должен манипулировать DOM веб-страницы. Манипуляции должны быть достаточно динамичными, а скорость передачи данных является важным требованием.

Я рад любой помощи, указывающей мне правильное направление или предоставляющей полезные ресурсы, которые, возможно, стоит прочитать!

1 Ответ

1 голос
/ 07 ноября 2010

Написание плагинов для браузера не совсем тривиально, если вы можете использовать альтернативы, такие как WebSockets (или их эмуляции, такие как web-socket-js , см. здесь и здесь для более подробной информации).

Только если такие альтернативы не дают вам достаточного контроля из-за особых требований, стоит рассмотреть возможность написания плагина для браузера.
С его помощью вы получите все преимущества нативного кода.(высокий контроль над любым API, который вы выбираете), но также и проблемы, которые идут с ним:

  • вы должны начать беспокоиться о привилегиях * ошибки 1013 *
  • могут привести к сбою во всем браузере
  • вам, возможно, придется справляться с поведенческими различиями между платформами и браузерами
  • вам нужно беспокоиться о распределении на нескольких платформах
  • ...

Если вам нужноболее высокий уровень контроля по какой-либо причине вы можете

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

Для начала работы сПлагины NPAPI см. Здесь , для поддержки IE вам также потребуется написать расширение контента .Наконец, я бы посоветовал взглянуть на FireBreath , который уже выполняет большую часть тяжелой работы за вас (скрывает различные API для IE и NPAPI, предоставляет вам API более высокого уровня, исправления для ошибок браузера, включая...).

...