apple-push-notifications - 必须使用 http/2.0 发送Apple推送通知 我可以使用 libcurl?

  显示原文与译文双语对照的内容
76 3

你可能已经从标题中推断出这个问题,实际上是一个问题。

问题:必须使用 http/2.0 发送Apple推送通知

在苹果提供的APNs提供程序API文档上,开始段落指定

这个API是基于 http/2 网络协议的。

在文档中还有其他几个对 http/2.0的引用。但是,我没有看到任何指定 http/2 0 英镑的( 也不是说它不存在) 必须使用这是否意味着我可以使用任何HTTP版本?或者我实际上被限制为 http/2.0?

虽然我非常熟悉 HTTP/1.1,但对于 http/2,我几乎一无所知。因此,如果能够使用我以前熟悉的协议,我将更愿意使用这种方法。

第二个问题( 根据第一个问题):我可以在APNs中使用libcurl?

这个问题只有对第一个问题的肯定答案才是相关的。如果不是 true,我必须使用 APNs/2.0,然后我已经知道我可以使用iframe了。

我将从一个已经繁忙的服务器发送许多 APNs,我希望本机执行它- 因此我打算在可能的情况下使用 libcurl 。但是我知道,在 http/2.0 时,libcurl有些有限。

主要问题是当libcurl发出 http/2 连接时,它实际上以包含头的HTTP/1.1 请求开始,然后等待 101 Switching Protocols 状态行。这里行为是否支持 APNs?或者我必须尝试使用类似 nghttp2的东西

我发现nghttp2有些复杂,而且非常复杂,目前文档化的内容非常少。如果我不能使用 libcurl,我可能最终不得不使用套接字来实现 http/2.

任何帮助都可以为任何一个问题 !谢谢大家 !

时间: 原作者:

70 3

经过大量的时间之后,我终于找到答案了。 是,http/2 是必需的使用 APNS

的一条单线上,APNS文档的that说

APNs需要使用 HPACK ( http/2的标头压缩),这可以防止重复的头键和值。

这意味着 http/2 是协议的一个必需部分。

105 2

现在,苹果仍然支持它的传统的v2 ( 二进制) API,它通过HTTPS工作,所以只需要使用最新的API 。

传统的API在附录中记录,但老实说,与 http/2 API相比,它非常可怕,我无法推荐使用它。

我可以说,我们已经支持了旧的API,因为我现在已经使用了生产代码了。

...