这个问题,正如标题所示,实际上有两个问题。
第一个问题:我必须使用HTTP/2.0来发送苹果推送通知吗?
在由苹果提供的APNs提供者API文档中,开头的段落指定了:
提供者API基于HTTP/2网络协议。
还有几个其他关于HTTP/2.0的参考资料。然而,我没有看到(这并不是说没有)任何指定必须使用HTTP/2.0的内容。这是否意味着我可以使用任何HTTP版本?或者我实际上被限制为使用HTTP/2.0?
我非常熟悉HTTP/1.1,但我对HTTP/2.0几乎一无所知,因此如果我能够使用我熟悉的旧协议,我更喜欢那个。
第一个问题:我必须使用HTTP/2.0来发送苹果推送通知吗?
在由苹果提供的APNs提供者API文档中,开头的段落指定了:
提供者API基于HTTP/2网络协议。
还有几个其他关于HTTP/2.0的参考资料。然而,我没有看到(这并不是说没有)任何指定必须使用HTTP/2.0的内容。这是否意味着我可以使用任何HTTP版本?或者我实际上被限制为使用HTTP/2.0?
我非常熟悉HTTP/1.1,但我对HTTP/2.0几乎一无所知,因此如果我能够使用我熟悉的旧协议,我更喜欢那个。
第二个问题(基于第一个问题):我可以使用libcurl与APNs吗?
只有在第一个问题的回答是肯定的情况下,这个问题才是相关的。如果我不必使用HTTP/2.0与APNs,那么我已经知道我可以使用libcurl。
我将从一个已经很忙的服务器发送许多APNs,并且我希望能够本地化处理 - 因此,如果可能的话,我计划使用libcurl。然而,我了解到当涉及到HTTP/2.0时,libcurl有一定的局限性。
主要问题在于,当libcurl建立一个HTTP/2.0连接时,它实际上会从一个包含upgrade
头的HTTP/1.1请求开始,并等待101 Switching Protocols
状态行。这种行为是否支持APNs?或者我必须尝试使用类似nghttp2的东西?
我发现nghttp2有点复杂,目前文档非常不好。我担心如果不能使用libcurl,我可能最终不得不使用套接字自己实现HTTP/2.0(这将是最糟糕的情况)。
任何有关问题的帮助都将不胜感激!非常感谢大家!