当前位置:  开发笔记 > 运维 > 正文

我必须使用HTTP/2.0发送Apple推送通知吗?我可以使用libcurl吗?

如何解决《我必须使用HTTP/2.0发送Apple推送通知吗?我可以使用libcurl吗?》经验,为你挑选了1个好方法。

正如您从标题中推断的那样,这个问题实际上是两个问题.

第一个问题:我必须使用HTTP/2.0发送Apple推送通知吗?

在Apple提供的APNs Provider API文档中,开头的段落指定:

提供程序API基于HTTP/2网络协议.

在整个文档中还有其他几个对HTTP/2.0的引用.但是我没有看到(这并不是说它不存在)任何指定必须使用HTTP/2.0的东西.这是否意味着我被允许使用任何HTTP版本?或者我实际上是否受限于HTTP/2.0?

我对HTTP/1.1非常熟悉,但我对HTTP/2.0几乎一无所知,因此如果我能够使用我熟悉的旧协议,我宁愿这样做.

第二个问题(基于第一个问题):我可以将libcurl与APN一起使用吗?

只有对第一个问题给出肯定答案,这个问题才有意义.如果我不能将HTTP/2.0与APN一起使用,那么我已经知道我可以使用libcurl了.

我将从已经很繁忙的服务器发送许多APN,我宁愿本地也这样做 - 因此我计划尽可能使用libcurl.但是我知道libcurl在HTTP/2.0方面有些限制.

主要问题是,当libcurl建立HTTP/2.0连接时,它实际上以包含upgrade标头的HTTP/1.1请求开始,然后等待101 Switching Protocols状态行.APN是否支持此行为?或者我必须尝试使用​​像nghttp2这样的东西吗?

我发现nghttp2有点复杂,目前记录得非常糟糕.我担心如果我不能使用libcurl,我可能最终必须自己使用套接字来实现HTTP/2.0(这将是最糟糕的).

任何问题的任何帮助都表示赞赏!谢谢大家!



1> William Rose..:

好好经过很长一段时间后我终于找到了答案.是的,使用APNS 需要 HTTP/2.

它归结为APNS文档中的单行说

APN需要使用HP​​ACK(HTTP/2的标头压缩),这可以防止重复的标头密钥和值.

这意味着HTTP/2是协议的必需部分.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有