ServiceWorker и полезная нагрузка push-уведомлений

Сообщество:

ServiceWorker — отличная передовая технология с точки зрения управления кешем, но у меня есть несколько вопросов, связанных с другими операциями, такими как:

Push-уведомление: я интегрировал GCM (Google Clud Message) и NodeJS, следуя этому статья, проблема в том, что когда GCM отправляет информацию клиенту (Chorme), полезная нагрузка сообщения, сгенерированного GCM, недоступна в Notification в ServiceWorker Listener, который отлично подходит для принятия решений. Любая идея, когда полезная нагрузка данных в уведомлениях будет включена?

Регистрация. Поскольку ES6 очень развит, было бы неплохо зарегистрировать ServiceWorker другими способами, например:

import sw from './sw.js'

navigator.serviceWorker.register(sw, {scope: '/'}).then(function (registration) {
 // Registration was successful
 console.log('ServiceWorker registration successful with scope: ', registration.scope);
}).catch(function (err) {
 // registration failed :(
 console.log('ServiceWorker registration failed: ', err);
});

Это возможно или имеет смысл?

Спасибо!!!!


person Cristian Rinaldi    schedule 17.06.2015    source источник
comment
Ваш код примера регистрации на самом деле невозможен, потому что вы должны передать .register совершенно новый файл для загрузки в совершенно новую среду JS. Размещенный вами код будет выполнять сервисного работника внутри JS-среды страницы, а затем пытаться передать ссылку на него.   -  person loganfsmyth    schedule 17.06.2015


Ответы (1)


  1. Ошибка "Поддержка зашифрованных полезных данных для push-сообщений" отслеживает ход выполнения отображение полезной нагрузки в уведомлениях. Эта ошибка специфична для Chrome, но другие производители браузеров, вероятно, будут следовать тому же подходу.
  2. Поток обновления сервис-воркера тесно связан с идеей существования определенного файла JavaScript, который представляет код сервис-воркера, и этот файл затем можно периодически проверять, байт за байтом, чтобы увидеть, есть ли какие-либо обновления. Если бы это был объект JavaScript в памяти, который был зарегистрирован и отделен от файла, процесс обновления не работал бы, как указано. Я не думаю, что вы увидите изменение, которое вы предлагаете, добавленное в спецификацию.
person Jeff Posnick    schedule 17.06.2015
comment
Спасибо за ответ @Jeff Posnick По пункту 1 нечего сказать, ответ очень ясен ... Что касается пункта 2, было бы здорово иметь возможность запускать в другом потоке больше вещей, скрипт, например экземпляр импортированный сервис (класс) текущего потока. Все это для более эффективного использования системы импорта и экспорта SS6. - person Cristian Rinaldi; 18.06.2015