HTML5: общий веб-работник с несколькими подключениями - PullRequest
1 голос
/ 06 июля 2011

Насколько я понимаю, большое преимущество веб-работников HTML5 в том, что они могут принимать несколько соединений в одном отдельном потоке выполнения.

Мой вопрос: кто-нибудь получил несколько соединений с SharedWorker, чтобы работать как один поток с Google Chrome? Я использую последнюю версию 12.0.742.112.

Демо: http://demos.zulius.com/html5/sharedworker

Источник (в случае, если демонстрационная версия не работает): index.html , sharedworker.js

Демонстрация устанавливает 2 отдельных слушателя событий. Ожидаемый результат:

foo got message: Hello World! You are connection #1
bar got message: Hello World! You are connection #2

В демонстрационной версии оба прослушивателя событий запускаются правильно, но переменная подсчета соединений не поддерживается в сценарии SharedWorker. Это наводит меня на мысль, что каждое соединение с SharedWorker выполняется в отдельном потоке.

Я что-то не так делаю? Или поддержка Chrome для SharedWorker не совсем там?

ОБНОВЛЕНИЕ: демо работает сейчас.

Ответы [ 2 ]

2 голосов
/ 06 июля 2011

У вас есть 2 слушателя Worker, но вы запускаете Worker только один раз, поэтому 1 Worker совместно используется 1 владельцем, а не 2 владельцами.Увеличение числа слушателей не влияет на владение.

Пример вы можете увидеть здесь: http://weblog.bocoup.com/javascript-web-workers-chrome-5-supports-new-sharedworker

Он имеет 2 кадра, один из которых содержит iframe, а другой внутри iframe.Они оба вызывают метод start Worker, поэтому его разделяют 2 владельца.Поскольку метод start вызывается дважды, событие onconnect должно запускаться дважды, что делает connection.count равным 2.

0 голосов
/ 18 января 2013

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

Изменение контекста данных повлияет на все соединения, возможно, вы сможете обновить все соединения с одним изменением контекста, вы можете поддерживать данные доконец последнего соединения.вы можете поддерживать изменения соединения во всех представлениях.

Вот демонстрация общих веб-работников с несколькими подключениями.

http://www.antkorp.in/sharedworkers/

...