Questa domanda, come puoi dedurre dal titolo, è in realtà due domande in una.Devo utilizzare HTTP/2.0 per inviare notifiche push Apple? Posso usare libcurl?
Prima domanda: È necessario utilizzare HTTP/2.0 per inviare notifiche push Apple?
Sulla APNs Provider API documentation fornito da Apple, il paragrafo di apertura specifica
Questa API è basata sul protocollo di rete HTTP/2.
Ci sono molti altri riferimenti a HTTP/2.0 in tutta la documentazione. Tuttavia non vedo (il che non vuol dire che non sia lì) qualcosa che specifica che HTTP/2.0 deve essere utilizzato. Questo significa che posso utilizzare qualsiasi versione HTTP? O sono effettivamente limitato a HTTP/2.0?
Ho molta familiarità con HTTP/1.1 ma non conosco quasi nulla di HTTP/2.0, quindi se sono in grado di utilizzare il mio vecchio protocollo familiare preferirei quello.
Seconda domanda (basata sulla prima domanda): Posso utilizzare libcurl con gli APN?
Questa domanda è pertinente solo in risposta affermativa alla prima domanda. Se non è vero che devo usare HTTP/2.0 con gli APN, so già che posso usare libcurl.
Invierò molti APN da un server già occupato e preferirei farlo in modo nativo, quindi ho intenzione di utilizzare libcurl se possibile. Tuttavia capisco che libcurl è alquanto limitato quando si tratta di HTTP/2.0.
Il problema principale è che quando libcurl effettua una connessione HTTP/2.0, in realtà inizia con un/1.1 richiesta HTTP che include un header upgrade
, e quindi attende una linea 101 Switching Protocols
di stato. Questo comportamento è supportato con gli APN? O devo provare ad usare qualcosa come nghttp2?
Ho trovato che nghttp2 è un po 'complesso e molto scarsamente documentato al momento. Sono preoccupato che se non riesco a usare libcurl, potrei finire per dover implementare HTTP/2.0 da solo usando i socket (che sarebbe IL PEGGIO).
Qualsiasi aiuto è apprezzato per entrambe le domande! Grazie a tutti!
arricciare la riga di comando è buona per questo scenario con HTTP/2. Basta usare l'opzione --http2 e https: // url. Quindi, ci deve essere un modo in cui puoi anche fare il comportamento di libcurl .... – dsign
HTTP/2 fatto su un normale HTTP: // URL dove non sappiamo quale versione parla normalmente con Upgrade: HTTPS: // è fatto diversamente Alla fine, libcurl _will_ otterrà anche il supporto HTTP2 di conoscenza preliminare e saremo lieti di aiutarci a implementarlo. –
@DanielStenberg Sarei davvero interessato ad aiutare. Questo sembra divertente. Come potrei essere coinvolto? –