[英]APNS Push notification received incorrect
我们公司有多个应用程序,当然所有应用程序都有不同的应用程序ID。 最近我们看到了一些问题,即推送通知是从应用X发送到设备的,而实际上是为应用Y发送的
用户打开应用Y,我们的后端注册了其设备令牌。 用户稍微使用该应用程序并存在该用户现在打开应用程序X,后端也注册了该设备。
现在,将推送消息发送到应用程序Y,用户会收到此消息,但设备会将其显示为好像已被应用程序X接收。单击通知时,将打开应用程序X。
注意:所有应用程序都使用单独的数据库
我们已经检查了我们使用的.pem文件(我们的后端向apns发送通知是用PHP编写的),这些文件还不错。 连接管理器也使用正确的证书正确发送到APNS。
这个问题的问题是什么,当然是解决方案?
您是否还记得在与APNS通信的.php脚本结尾处关闭与APNS服务器的连接?
只需将这一行放在最后:
fclose($fp);
$ fp是您先前声明的连接,如下所示:
$fp = stream_socket_client(
'ssl://gateway.push.apple.com:2195', $err,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
出现此问题的原因很可能是由于来自其他应用程序的连接尚未关闭。 当它们保持打开状态时,新的通知会从打开与服务器的连接的最后一个应用程序发送。 我的公司遇到了同样的问题,当我们在不同应用程序的所有APNS脚本的结尾处关闭连接时,问题就消失了。
请让我知道这是否对您有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.