Можно ли встроить HTTP-сервер в расширение Google Chrome? - PullRequest
9 голосов
/ 19 февраля 2011

Как вы думаете, было бы возможно встроить HTTP-сервер в расширение Google Chrome?

Я видел, как другие расширения Google Chrome выполняли собственный код, и, по-видимому, они делают это, используя NPAPI , но я понятия не имею, что это такое. И это действительно бесит, потому что я не эксперт по С ++ или что-то в этом роде. Теперь я чувствую себя немного застрявшим, и поэтому я прошу помощи.

В частности, я хочу создать расширение для Chrome с функциями, аналогичными Opera Unite . Для тех, кто не знает, о чем я говорю: Opera Unite - это веб-сервер с нулевым разрешением в комплекте с браузером. Я не хочу использовать его для того же, что и Opera, но мне нравится концепция.

Я думал о том, чтобы использовать что-то вроде node.js внутри браузера, чтобы создать простой веб-интерфейс для управления некоторыми элементами в браузере. Думайте об этом как о пульте дистанционного управления для браузера. Если node.js невозможен, я бы хотел использовать lighthttpd или что-то подобное. Технология на самом деле не имеет значения, поскольку она позволяет мне получать команды через HTTP.

Но как мне взять существующий веб-сервер и сделать из него плагин NPAPI?

Уточнение: Я бы хотел, чтобы любой браузер мог общаться с моим добавочным номером. Особенно я хочу, чтобы мобильные устройства, такие как Android или iPhone, могли удаленно управлять браузером. Есть ли другой способ сделать это, кроме как с помощью HTTP-сервера?

Еще одно обновление: Я думаю, что самый простой способ сделать это - использовать сервер ретрансляции в Интернете, такой как Pusher или какой-либо самостоятельно созданный сервис. Но мне не нравится этот подход, потому что он требует постоянного доступа в интернет и потому что это платная услуга.

Спасибо всем!

Ответы [ 3 ]

3 голосов
/ 24 апреля 2014

Вот еще один веб-сервер, реализованный с помощью chrome.socket: https://github.com/kzahel/web-server-chrome. Пример сервера, связанный с chrome-app-samples, на самом деле действительно глючит и блокируется, если вы, например, удерживаете Ctrl-R на странице.поданный им.

3 голосов
/ 19 февраля 2011

Если вы хотите сделать дистанционное управление для браузера, подойдет ли вам что-то вроде HTML5 WebSockets?

http://www.html5rocks.com/tutorials/websockets/basics/

Вы можете иметь внешний «удаленный» сервер, который ваше расширение слушает через WebSockets. Если вы хотите разместить веб-сервер через расширения. Вам нужно будет использовать NPAPI, есть много библиотек C ++ (поиск Google), которые могут сделать простой веб-сервер. Но я бы предпочел использовать WebSockets для связи с внешним сервером, который предоставит вам все, что вы захотите.

Но если вы настаиваете, вам нужно изучить C ++, NPAPI, в Интернете есть много примеров, касающихся NPAPI.

2 голосов
/ 17 января 2014

Вот информация о создании веб-сервера в приложении Chrome: https://developers.google.com/live/shows/7320022-5001

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