【问题标题】:Push notification in PHP, should I use CURL or stream_context_create()?在 PHP 中推送通知,我应该使用 CURL 还是 stream_context_create()?
【发布时间】:2014-08-28 06:34:30
【问题描述】:

【问题讨论】:

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


    【解决方案1】:

    您不能使用 CURL 发送 Apple 推送通知。正如您在链接中的所有 CURL 示例中看到的那样,它们都是适用于 Android 的 Google Cloud Messaging (GCM) 示例。

    CURL 与 GCM 一起使用,因为 GCM 服务器接受 HTTPS 请求。另一方面,Apple Push Notifications 不适用于 HTTP。它们仅适用于 TCP 协议上的特定二进制格式。

    作为提供商,您通过二进制接口与 Apple 推送通知服务进行通信。该接口是供提供商使用的高速、大容量接口;它结合二进制内容使用流式 TCP 套接字设计。二进制接口是异步的

    因此你应该使用stream_context。

    虽然这个答案在当时是正确的,但现在已经过时了。正如@andreszs 所说,您现在可以使用 PHP/CURL 向 APNs 发送 HTTP/2 请求

    确实,使用 HTTP/2 支持设置 CURL 有点痛苦,因为您需要使用其他几个库(如 openssl 和 nghttp2)自己编译它。如果您像我一样尝试在 Windows 上执行此操作但不知道如何操作,您可能需要查看 this post(我为使其正常工作所经历的过程)。

    【讨论】:

    • 他们现在可以通过新的 API 使用 CURL + HTTPS,只要您能够处理发出有效 HTTP2 请求的奇迹。
    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多