我使用Azure Notification Hub作为我的服务来将推送通知发送到移动设备。
我开发了一个简单的节点服务器来注册和发送推送通知。
我已经完成了推送通知的实现,并且移动客户端现在可以从我的服务器接收推送,但是专门用于SANDBOX和PRODUCTION。
我的服务器是否可以在一个请求中同时在SANDBOX和PRODUCTION中(同时)发送推送通知?
这是我在SANDBOX / PRODUCTION中发送推送通知的代码
var payLoad = {
aps: {
alert: data
}
};
azure.apns.send(tag, payLoad, function (err, reps){
if(!err){
cb({error: false});
}else{
cb({error: true, error_log: err});
}
})
没有理由这样做。这是两个有意分离和隔离的环境。
这是一篇较旧的博客文章,概述了有关这两个方面的基本事实:
一般经验法则:
请记住,沙盒(开发)环境与生产环境完全分开。让我重复一遍:请记住,沙盒(开发)环境与生产环境完全分开。在整个环境中混合使用设备令牌和认证将导致很多事情(即无响应)。服务器需要来自供应门户的推送证书。客户端通过与Apple服务器进行通信来向推播服务注册自己。这两个环境具有特定于它们的项目。进一步来说:
服务器需要单独的开发人员证书和生产证书。与从App Store下载的应用程序相比,在开发版本中进行注册时,客户端会获得不同的设备令牌。因此,存在以下规则(除非您进行一些我目前不知道的黑客操作):
向APNS注册时,客户端的开发版本(即从开发环境(包括Ad Hoc)在设备上放置的任何版本)都将获得开发设备令牌。这意味着您无法在客户端上进行开发时测试生产服务器设置。尝试这样做会导致混乱和浪费时间。生产版本(即实际从App Store下载的应用程序)将获得生产设备令牌。必须使用生产APNS服务器设置对它们进行测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句