如何在NodeJS/Javascript中的FCM中发送多个通知



我想向特定设备发送多个通知,尝试1-1通信:

router.post('/send', function(req, res){  
getAccessToken().then(function(access_token){
var title = req.body.title;
var body = req.body.body;
var token = req.body.token;
request.post({
headers:{
Authorization: 'Bearer ' + access_token
},
url:"https://fcm.googleapis.com/v1/projects/MYPROJECT/messages:send",
body: JSON.stringify(
{
"message":{
"token": token,
"notification":{
"body":body,
"title":title
}
}
}
)
}, function(error, response,body){
res.end(body);
console.log(body);
});
});
});

它真的很管用。问题是,我不太了解NodeJS/JS中的程序,代码来自YT教程,我想发送多条消息。我正在尝试:

router.post('/sendmulticast', function(req, res){
getAccessToken().then(function(access_token){
var title = req.body.title;
var body = req.body.body;
var token = req.body.token;
for(var i = 0; i <= token.length; i++){
request.post({
headers:{
Authorization: 'Bearer ' + access_token
},
url:"https://fcm.googleapis.com/v1/projects/MYPROJECT/messages:send",
body: JSON.stringify(
{
"message":{
"token": token[i],
"notification":{
"body":body,
"title":title
}
}
}
)
}, function(error, response,body){
res.end(body);
console.log(body);
});
}
});
});

但是它返回ERR_STREAM_WRITE_AFTER_END,我想由于它是一个异步任务,它正在等待服务器的响应。

我尝试为安卓用户订阅该主题,但FCM没有注册该主题。如果你能帮助我使用这个服务器端方法,我将不胜感激。

res.end(body)似乎是个问题。把这个放在循环之外,它应该会起作用。您可以考虑创建一个函数来发布请求。

相关内容

  • 没有找到相关文章

最新更新