Плагин Firefox - сокеты - PullRequest
       41

Плагин Firefox - сокеты

4 голосов
/ 17 августа 2008

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

Я знаю, что это классическое ограничение (функция?) Протокола запросов / ответов HTTP, но я думаю, что это может быть реализовано как плагин Firefox (совместимость между браузерами не важна для моего приложения). Решения Java / Flash неприемлемы, потому что (насколько я знаю) они живут в коробке и не могут взаимодействовать с DOM.

Может ли кто-нибудь подтвердить, находится ли это в пределах возможностей плагина Firefox? Кто-то уже создал это или что-то подобное?

Ответы [ 4 ]

2 голосов
/ 17 августа 2008

Это должно быть возможно. Я разработал приложение xulrunner, которое подключается к TCP-серверу с помощью сокетов. Разработка расширений, вероятно, будет иметь те же возможности. Я использовал библиотеку от mozdev - JSLib . В частности, проверьте сетевой код . Тот факт, что есть надстройка Firefox для надстройки JSlib для Firefox , делает более уверенным.

По сути, насколько я понимаю, сокеты не являются частью JavaScript, но через XPCOM вы можете получить доступ к необработанным сокетам, как в любом приложении c / c ++.

Предупреждение: Кажется, JSLib не уделяется много внимания, а список рассылки довольно скудный.

2 голосов
/ 17 августа 2008

Возможно, вы захотите взглянуть на Comet , который является причудливым именем для продолжительного HTTP-соединения, где сервер может загружать обновления на страницу.

1 голос
/ 18 сентября 2012

Java / Flash решения не приемлемы, потому что (насколько я знаю) они живут в коробке и не могут взаимодействовать с DOM.

На самом деле это не так для Java. Вы можете взаимодействовать с Java через JavaScript и вносить изменения в DOM.

http://stephengware.com/proj/javasocketbridge/

В этом примере есть два метода JavaScript для взаимодействия

Отправить:

socket_send("This was sent via the socket\n\n");

Получите:

on_socket_get(message){ more_code(message); }

0 голосов
/ 17 августа 2008

Вы можете посмотреть на комету

a.k.a. сервер push . Это не позволяет серверу «обновлять» страницу клиента напрямую, но все новые данные отправляются на страницу через одно соединение.

Конечно, расширение Firefox (а также plugins , которые являются бинарными библиотеками, которые могут делать то же, что и любое другое приложение), также может работать с сокетами. См 1 , 2 .

...