如何通过Web推送发送用户特定通知

时间:2016-03-08 05:39:18

标签: javascript json

我正在实施Chrome上的网络推送,除了我不知道如何从服务器获取用户特定通知之外,一切运行良好。在发送时,每个人都得到同样的东西。

有没有办法可以将端点ID传递给服务工作者的最新通知请求?或者我怎么能这样做?

感谢。

2 个答案:

答案 0 :(得分:1)

应该在服务器endpoint.txt上为所有订阅的客户端实施一个可以读取的数据存储,然后将消息传递给特定用户。

有关此部分的更多信息:developer.mozilla.org/en/docs/Web/API/Push_API

发送广播消息的部分功能,你可以修改它以选择一个客户端,而不是全部在for循环中:https://github.com/chrisdavidmills/push-api-demo/blob/gh-pages/server.js

  if(obj.statusType === 'chatMsg') {
        fs.readFile("endpoint.txt", function (err, buffer) {
          var string = buffer.toString();
          var array = string.split('\n');
          for(i = 0; i < (array.length-1); i++) {
            var subscriber = array[i].split(',');
            webPush.sendNotification(subscriber[2], 200, obj.key, JSON.stringify({
              action: 'chatMsg',
              name: obj.name,
              msg: obj.msg
            }));
          };
        });

答案 1 :(得分:0)

您可以将带有消息的数据发送给用户,但您需要加密有效负载数据。这已经在Firefox中使用了一段时间,并且在几个版本的Chrome中。

查看以下库: