APNS推送通知收到错误

时间:2012-07-20 13:21:46

标签: ios push-notification apple-push-notifications

我们公司有多个应用程序,当然都有不同的应用程序ID。我们最近看到的问题是推送通知是从应用X发送到设备的,而实际上它是为应用Y发送的

用户打开应用程序Y,我们的后端注册其设备令牌。用户使用该应用程序并存在 相同的用户现在打开app X,后端也会注册这个设备。

现在推送消息被发送到应用Y,用户收到此消息,但设备显示它就像应用X已经收到它一样。当点击通知应用程序X时,

注意:所有应用都使用单独的数据库

我们检查了我们使用的.pem文件(我们的后端向apns发送通知是用PHP编写的),这些都很好。连接管理器也使用正确的证书正确地发送给APNS。

这个问题会有什么问题,当然还有解决方案?

1 个答案:

答案 0 :(得分:3)

您是否记得在与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脚本结束时关闭连接时,问题就消失了。

如果这对您有用,请告诉我。