我正在实施Chrome上的网络推送,除了我不知道如何从服务器获取用户特定通知之外,一切运行良好。在发送时,每个人都得到同样的东西。
有没有办法可以将端点ID传递给服务工作者的最新通知请求?或者我怎么能这样做?
感谢。
答案 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中。
查看以下库: