2016-02-17 3 views
2

Я новичок в serviceworkers, и мне интересно, как я могу подключить своего serviceworker к моему приложению asp.net. Мой клиент js уже передан сотруднику службы, и он может показывать уведомления. Однако я видел, что некоторые веб-страницы (например, facebook) отправляют уведомления, даже если вкладка браузера не открыта (неактивна, не открыта). Я использую signalR для связи моего приложения с сервером. Будет ли возможно связаться с serviceworker с сервером? Это потребует добавить код signalR к serviceworker, если я не ошибаюсь, но я не думаю, что это возможно. Я видел, что у Google есть другой способ связи: Google Cloud CommunicationСвязь между приложением asp.net и serviceworker, через signalR?

Я не могу использовать это, поэтому любые идеи о том, как я могу решить эту проблему?

+0

Я не думаю, что сигналR может работать на рабочего ... Он, безусловно, борется с веб-мастерами. Это новое будущее в этом году в SignalR v3 – thab

ответ

3

Чтобы использовать автономные уведомления (т. Е. Ваш браузер открыт, но ваша страница отсутствует), браузер сам должен знать о службе обмена сообщениями, на которую он может ответить, и которая позволила бы ей проснуться вашего сервисного работника и дать ему уведомление. Эти службы жестко закодированы в браузере. В случае Chrome это сервис GCM. И я считаю, что Firefox выкачивает что-то свое. Вы не можете самостоятельно разбудить своего сервисного работника с вашего сервера, не пройдя через одну из этих служб обмена сообщениями.

Помните, что обычно ваш работник службы спит. Браузер только пробуждает его в ответ на конкретные события, и, если ваши страницы закрыты, невозможно запустить событие рабочего сотрудника с вашего сервера, если только браузер не предоставляет службу обмена сообщениями, такую ​​как GCM.

+1

Это услуга push, используемая в Firefox: https://github.com/mozilla-services/autopush – Marco