Sam*_*mer 17 php push apple-push-notifications ios apns-php
我在使用APNS和PHP时遇到问题,并收到以下消息:
stream_socket_client(): Failed to enable crypto
Run Code Online (Sandbox Code Playgroud)
这个问题有时只会发生,有时候实际上会发送推送.
由于我在10次迭代的循环上有测试脚本,我有时会得到这个:
stream_socket_client(): SSL: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
我正在使用沙盒服务器进行测试 tls://gateway.sandbox.push.apple.com:2195
这是我尝试过的:
sslv3://和tls://.644755似乎我在Google和SO上找到的所有解决方案都是人们完全没有问题.
我觉得这项服务的速度有限吗?因为我们等待了一段时间(大约15分钟)然后再次尝试,并且能够成功地推送大约100条消息,直到我再次开始收到该消息.
gre*_*sel 14
沙箱推送服务是速率限制的.我在测试时自己经历过这种情况,但从未遇到使用生产API的任何此类限制.
你可能也会受到其他保护.
您是否打开连接,发送消息,关闭连接然后循环并重新执行此操作?
这将使您的通知被删除.Apple希望您使用相同的连接发送多个推送通知,而不是每次都发送新的推送通知.
管理连接的最佳实践
您可以与同一网关或多个网关实例建立多个连接.如果您需要发送大量远程通知,请将它们分散到多个不同网关的连接上.与使用单个连接相比,这可以提高性能:它可以让您更快地发送远程通知,并且它可以让APN更快地提供它们.
通过多个通知保持与APN的连接; 不要反复打开和关闭连接.APN将快速连接和断开视为拒绝服务攻击.您应该保持连接处于打开状态,除非您知道它将在一段时间内处于空闲状态 - 例如,如果您每天只向用户发送一次通知,则可以每天使用新连接.
我的PHP代码生成以下错误:
PHP Warning: stream_socket_client(): Failed to enable crypto in /private/tmp/t.php on line 12
PHP Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /private/tmp/t.php on line 12
PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /private/tmp/t.php on line 24
Run Code Online (Sandbox Code Playgroud)
问题是,该死的证书,前天到期了!:-)你能相信吗?
所以,我需要重新创建我的PEM文件.