Hi, On Sep 2, 2015 12:31 PM, "Davey Shafik" <da...@php.net> wrote: > > Hi, > > I've been poking around at HTTP/2 a lot lately, and it seems that so long > as you are using libcurl 7.43.0+ it's possible to do request multiplexing. > > This change simply introduces three constants, CURLPIPE_NOTHING (0), > CURLPIPE_HTTP1 (1), and CURLPIPE_MULTIPLEX (2) which represent possible > values passed into curl_multi_setopt() for the CURLMOPT_PIPELINING option. > Current behavior of passing in 0 and 1 map to the first two constants, > while the third allows for multiplexing. > > Now, of course, being constants, you can just pass in 0, 1, or 2, but this > brings the consistency and explicitness of exposing them as with all the > other curl constants. > > I'd love to see this make it into PHP 7.0 if it's not too late? It's > extremely trivial, but whatever — not that fussed :) > > PR is here: https://github.com/php/php-src/pull/1497 > > I'm not sure if there is some way to ensure that libcurl is compiled with > nghttp, but we don't check for the other HTTP/2 stuff so either it's done > elsewhere and I missed it, or we're making assumptions that the right > version is enough. Any input on this would be good. > > FTR, multiplexing can bring substantial performance improvements, > especially when factoring in SSL: > > 379 HTTP SSL requests > > Using HTTP/2 in serial: 63.293796062469 (HTTP/1.1 in serial should be even > slower) > Using HTTP/1.1 with curl_multi: 12.383034944534 > Using HTTP/2 w/multiplexing: 2.7933928966522
I think it should be fine as nothing is changed in the code but the constants addition. Let see what the RMs say :)