Stream_socket_client在我的服务器上失败,没有办法了解更多的错误



代码:(https://github.com/stuffmc/Safari-Push-Notifications/blob/master/index.php#L195)

stream_socket_client('ssl://gateway.push.apple.com:2195', $error, $errorString, 
                      60, STREAM_CLIENT_CONNECT, $streamContext);

返回false,但没有错误。这意味着当我发送到/v1/push时,每个设备/令牌都会失败:(PHP文档说:

如果errno返回的值为0,函数返回FALSE,则表明错误发生在connect()调用之前。这很可能是由于初始化套接字时出现问题。

我有这段代码运行完美的网站(开发/测试/分级),现在,我正试图转移到生产,它没有。

我应该注意调用

$ openssl s_client -connect gateway.push.apple.com:2195 -cert MyC.pem -key myK.pem

完美的作品。我有一个提示符,我可以在其中输入字符,当输入enter时,它退出-与我的dev测试相同。

我也没有发送到/v1/log(如https://devforums.apple.com/thread/203825所述),所以我不知道问题在哪里:(

我通过这样生成.pem解决了这个问题:

openssl pkcs12 -in key-chain-export.p12 -out apple_push_cert_production.pem -nodes -clcerts

我还是很想知道我怎么可能有一个"提示"(从PHP或openssl),它是证书。

AND:虽然它修复了服务器端的问题,但我随后在客户端遇到了问题。哦…

我还应该提到我修复了服务器上的代码,以便/v1/log从苹果那里得到一些东西。

见https://github.com/surrealroad/Safari-Push-Notifications/commit/0ae8a3ad3327a957c332090ea1bfcb146a40c5f3

相关内容

  • 没有找到相关文章

最新更新