Hello! On Mon, Nov 12, 2018 at 10:29:50PM -0500, Cubic wrote:
> I am intend to write an Nginx module which support downstream message push > through http2 protocol. > > The main process is as below. > 1. Client connect to Nginx and use http2 protocol to send a long polling > request stream. > 2. Nginx hold this long polling request stream and wait downstream > messages. > 3. If a message arrival, Nginx could send a push promise through the long > polling stream and put the message in another stream associated with the > push promise > > There is an ngx_http_v2_push_resource api in ngx_http_v2_filter_module.c > which assemble push promise frame and create another stream to invoke an > internal request by the specific path to send data, so i can register an > content handler with that path to send the message. > But sadly, this api is static somehow. > > Would you make this amazing api public? Similar request was previously rejected, see this thread for details: http://mailman.nginx.org/pipermail/nginx-devel/2018-February/010847.html In short: this API is not going to be public. If you want to push resources from your module, consider using the "http2_push" directive with a variable, or using the "Link: rel=preload" header. As for the design you describe, it looks unnecessarily HTTP/2-centric. You may want to consider returning an actual response to the long polling request instead of trying to maintain a fake request and return associated pushed resources. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx