发送错误令牌后,iOS推送通知错误

时间:2012-09-21 09:43:00

标签: push-notification apple-push-notifications apns-php

我一直在实现一个小的PHP脚本,它会将推送通知发送到Apple的APN服务器。 我有一个数据库,其中包含在我的应用程序中注册推送通知的所有设备令牌。 我的脚本将在数据库中查询令牌并将其发送给Apple。 一切都很好用但是...我手动将错误的令牌插入到我的表中并再次执行脚本。

我意识到在将错误的令牌发送给Apple之后,之后的所有通知都无法到达设备。 如果一切正常,Apple似乎不会返回任何正常但如果出现问题它会发送KO代码。 Apple收到错误令牌的错误,但之后我没有收到任何其他通知的回复。

我只为数据库中的所有令牌打开一个连接。

我用这一行准备套接字上下文:

$streamContext = stream_context_create(array(
   'ssl' => array(
    'local_cert' => $this->signFile
   )
  ));

然后启动与APN服务器的通信通道:

$this->hFile = stream_socket_client(self::$serverUrl[$environment], $err, $errstr, 60, STREAM_CLIENT_CONNECT, $streamContext);

最后我发送消息:

fwrite($this->hFile, $command);

我想为每个通知设置一个新连接,但我想首先询问SO意见......

顺便说一下,我知道PHP并不是最好的选择,但它来自其他地方的要求,我们被迫以这种方式设置系统。

谢谢你,祝你有愉快的一天,

亚历。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案: 一旦我检测到令牌无效,我就会关闭连接并再次打开它,以便在错误的连接后立即开始发送令牌。