Браузер: Google Cloud Messaging/node-gcm - данные всегда равны нулю

Серверный код:

var message = new gcm.Message({
    collapseKey: "demo",
    delayWhileIdle: true,
    timeToLive: 3,
    data: {
        test: 'value'
    }
});

var sender = new gcm.Sender(config.gcmKey);

var tokens = [];

... (to add tokens) ... 

sender.send(message, tokens, 3, function (err, res) { ... }

Код клиента (в работающем сервисном центре):

self.addEventListener('push', function(event) {
    console.log('Push message', event);
    var title = 'Push message';
    event.waitUntil(
        self.registration.showNotification(title, {
            body: 'Test',
            icon: 'img/icon.png',
        }));
});

(Все скопировано с readmes, учебников и демонстраций)

Когда я отправляю уведомление на сервер, оно отображается на моем экране, как и ожидалось, без ошибок. Тем не менее console.log('Push message', event); выводит объект события с data: null, Как я могу получить test: 'value' пара ключ-значение с сервера? Это с последним node-gcm и Chrome 52.

1 ответ

Решение

Полезная нагрузка для веб-push-уведомлений не работает так же, как для Android. Он должен быть зашифрован и отправлен другим способом.

Вы можете использовать библиотеку web-push для Node.js. Он поддерживает GCM для более старых версий Chrome, Web Push для Firefox и более новых версий Chrome.

Другие вопросы по тегам