2010-11-05 2 views
0

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

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

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

+0

Почему вы считаете AJAX хаки? Это действительно стандартное для отрасли решение и является довольно зрелой технологией. –

+0

Извините, я не имел в виду, что AJAX был взломан. Вы правы, сам AJAX зрелый и впечатляющий! Я скорее думаю, что такие решения, как комета или длинный опрос, являются взломом для создания «дуплексной» связи по HTTP. – Simon

ответ

1

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

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

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

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

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

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

Смежные вопросы