在node.js应用程序中接收GCM推送通知

时间:2016-12-12 17:47:48

标签: node.js google-cloud-messaging

我在node.js中构建命令行应用程序并希望接收GCM推送通知(命令行应用程序将与iOS / Android应用程序使用的同一组服务进行交互,因此需要使用相同的通知服务。)

鉴于GCM可以在iOS上使用(因此不是特定于Android),我希望它也可以从node.js中使用。

我已经看过许多关于从node.js发送推送通知的文章,但是还没有找到关于在接收端使用node.js的任何内容。

5 个答案:

答案 0 :(得分:12)

我认为如果你必须发送推送通知,ios和andriod然后fcm更好然后gcm使用这个

router.post('/pushmessage', function (req, res) {
    var serverKey = '';//put server key here
    var fcm = new FCM(serverKey);
    var token = "";// put token here which user you have to send push notification
    var message = {
        to: token,
        collapse_key: 'your_collapse_key',
        notification: {title: 'hello', body: 'test'},
        data: {my_key: 'my value', contents: "abcv/"}
    };
    fcm.send(message, function (err, response) {
        if (err) {
            res.json({status: 0, message: err});
        } else {
            res.json({status: 1, message: response});
        }
    });
});

答案 1 :(得分:2)

我认为不可能(以简单的方式)......

Android / iOS背后有一个与GCM通信的服务......

如果您尝试运行CLI工具,则需要在操作系统(Linux,Windows Mac)上实施服务,以便它可以接收通知。

答案 2 :(得分:2)

不强制仅依赖 GCM ,今天有许多软件包可用于发送 pushNotification

下面列出了两个节点程序包。

使用

fcm-call -您可以从https://www.npmjs.com/package/fcm-node/

中找到文档
let FCM = require('fcm-call');
const serverKey = '<Your Server Key>'; 
const referenceKey = '<Your reference key>'; //Device Key
let title = '<Your notification title here.>';
let message = '<Your message here>';

FCM.FCM(serverKey, referenceKey, title, message);

您的通知将在2-3秒内发送。

快乐通知。

答案 3 :(得分:1)

GCM针对设备令牌发送通知,这些令牌是在推送通知服务器注册时从iOS / Android设备生成的。如果您打算在没有设备令牌的情况下接收通知,则基本上是不正确的。

答案 4 :(得分:1)

我相信你可以使用服务工作者。

  

推送基于服务工作者,因为服务工作者在后台运行。这意味着只有时间代码才能运行推送通知(换句话说,只有电池使用的时间)是用户通过点击或关闭通知来与通知进行交互。如果您不熟悉它们,请查看服务工作者介绍。当我们向您展示如何实现推送和通知时,我们将在后面的部分中使用服务工作者代码。

所以基本上有一个等待推送的后台服务,那就是你要构建的东西。

  

两种技术

     

推送和通知使用不同但互补的API:当服务器向服务工作者提供信息时调用push;通知是向用户显示信息的服务工作者或网页脚本的操作。

self.addEventListener('push', function(event) {
  const promiseChain = getData(event.data)
  .then(data => {
    return self.registration.getNotifications({tag: data.tag});
  })
  .then(notifications => {
    //Do something with the notifications.
  });
  event.waitUntil(promiseChain);
});

https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications/handling-messages

相关问题